Postgres 从具有多个值的 select 语句插入
Postgres insert from select statement with multiple values
我检查过this question,但所有答案似乎都提供了针对只有一个字段的解决方案。我需要在插入时另外设置一个字段。我试过类似的东西:
INSERT INTO foo (x, y)
select id
FROM boo b1, 3
我明白了
SQL Error [42601]: ERROR: syntax error at or near "3"
如何将 select
和另一个值用于 INSERT INTO
foo?
你可能想要
INSERT INTO foo (x, y)
SELECT b1.id, 3
FROM boo b1;
文字值必须进入 SELECT
子句,它不是 FROM
子句中的另一个 table。还可以工作的是
INSERT INTO foo (x, y)
VALUES
( (SELECT b1.id FROM boo b1 WHERE …), 3 );
或
INSERT INTO foo (x, y)
SELECT (SELECT b1.id FROM boo b1 WHERE …), 3;
但这些仅在内部 SELECT
(子查询)returns 使用适当的 WHERE
条件正好是一个值时才有效。
我检查过this question,但所有答案似乎都提供了针对只有一个字段的解决方案。我需要在插入时另外设置一个字段。我试过类似的东西:
INSERT INTO foo (x, y)
select id
FROM boo b1, 3
我明白了
SQL Error [42601]: ERROR: syntax error at or near "3"
如何将 select
和另一个值用于 INSERT INTO
foo?
你可能想要
INSERT INTO foo (x, y)
SELECT b1.id, 3
FROM boo b1;
文字值必须进入 SELECT
子句,它不是 FROM
子句中的另一个 table。还可以工作的是
INSERT INTO foo (x, y)
VALUES
( (SELECT b1.id FROM boo b1 WHERE …), 3 );
或
INSERT INTO foo (x, y)
SELECT (SELECT b1.id FROM boo b1 WHERE …), 3;
但这些仅在内部 SELECT
(子查询)returns 使用适当的 WHERE
条件正好是一个值时才有效。