【问题标题】:Array Insertion Postgres数组插入 Postgres
【发布时间】:2017-06-06 14:42:26
【问题描述】:

我有一个带有属性 no(integer) 和 price(integer) 的表格 item,还有另一个带有属性 no(integer) 和 items(array of item) 的表格购物车。

我在项目中有一些记录。

当我尝试时:

INSERT INTO myschema.cart VALUES(1,'{SELECT item from myschema.item}')

我收到错误格式错误的记录文字。

我希望这会将 myschema.item 中的所有项目插入购物车记录。

【问题讨论】:

  • ' 表示字符串文字。

标签: postgresql


【解决方案1】:

如果没有表结构等,很难给你准确的陈述,但你可以选择一个数组:

INSERT INTO myschema.cart (id, item_ids)
SELECT 1, array(SELECT id from myschema.item)

这将从项目表中选择 id 到一个数组中。

您可以通过编写来测试它:

select array(SELECT id from myschema.item)

【讨论】:

    【解决方案2】:

    您不能在这样的字符串中编写子查询。

    您需要做的是将items 聚合到一个带有array_agg 的数组中

    INSERT INTO myschema.cart
    VALUES (1, (SELECT array_agg(item) FROM myschema.item));
    

    或者

    INSERT INTO myschema.cart
    SELECT 1, array_agg(item) FROM myschema.item;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-13
      • 2015-06-27
      • 2021-09-17
      相关资源
      最近更新 更多