【问题标题】:Arrays of composite types in PostgreSQL via NodeJS通过 NodeJS 在 PostgreSQL 中的复合类型数组
【发布时间】:2022-10-20 18:28:12
【问题描述】:

我正在使用 Node.JS(“pg”包)连接到 Heroku 上托管的 PostgreSQL 数据库。我需要在我的表中创建一个包含不同数据类型数组的列。通过查看之前在 Stackoverflow 上提出的其他问题,我了解到我可以创建可用于声明数组的复合数据类型。喜欢:

create type my_item as (
    field_1        text,
    field_2        text,
    field_3        text,
    field_4        number
);

但是,我不明白在使用 Node.JS 时如何实现这一点。我应该把它放在我的文件中的什么位置,在什么时候运行它?

我有一个 index.JS 文件,其中包含我的 Pool 实例和数据库访问信息。我的函数存储在models 文件夹中。每个函数都有自己的SqlString 变量,然后将其传递给查询。喜欢:

export async function getScores() {
    const data = await query(`SELECT * FROM score`);
    return data.rows;
}

感谢任何帮助。

【问题讨论】:

    标签: node.js postgresql composite-types


    【解决方案1】:

    Postgresql 中没有array of different composite types 这样的东西。您可能需要将列存储为 json/jsonb 类型,并在应用程序级别处理它们。或者创建数组中所有可能类型的超集类型,并在应用程序级别处理NULLs。仅当子集类型不与同一键上的不同类型重叠时才有效。 此外,复合材料的主要用例与INSERT/UPDATE/DELETE 查询有关,也就是任何需要应用程序的值插值的东西。当然,这在您的示例代码中没有用。

    【讨论】:

      猜你喜欢
      • 2015-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-20
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      相关资源
      最近更新 更多