阵列插入Postgres

时间:2017-06-06 06:28:31

标签: postgresql

我有一个带有属性no(整数)和price(整数)的表项,还有另一个带有属性no(整数)和items(item of array)的表推车。

我在项目中有一些记录。

当我尝试时:

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

我收到错误的记录字面错误。

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

2 个答案:

答案 0 :(得分:1)

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

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

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

你可以写下来测试一下:

select array(SELECT id from myschema.item)

答案 1 :(得分:0)

你不能在这样的字符串中写一个子查询。

您需要做的是将item聚合成一个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;