我有一个带有属性no(整数)和price(整数)的表项,还有另一个带有属性no(整数)和items(item of array)的表推车。
我在项目中有一些记录。
当我尝试时:
INSERT INTO myschema.cart VALUES(1,'{SELECT item from myschema.item}')
我收到错误的记录字面错误。
我希望这会将myschema.item中的所有项目插入到购物车记录中。
答案 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;