我在Postgres 9.6.3中尝试以下查询
INSERT INTO join_table ("table_1_id", "table_2_id") VALUES
(7, SELECT "id" from "table_2" where label='Foo Bar');
这会抛出ERROR: syntax error at or near "SELECT" at character 94
我已经看到了insert语句工作中嵌套选择的示例,其中只插入了所选内容。以上查询是否可能?
答案 0 :(得分:4)
尝试在子查询周围放置parens:
INSERT INTO join_table ("table_1_id", "table_2_id") VALUES
(7, (SELECT "id" from "table_2" where label='Foo Bar'));
答案 1 :(得分:1)
使用insert . . . select
。 values
是不必要的:
INSERT INTO join_table (table_1_id, table_2_id)
SELECT y, "id"
FROM "table_2"
WHERE label = 'Foo Bar';
这也允许您从另一个表中插入多行。