Postgres 从具有多个值的 select 语句插入

Muh*_*cak 0 postgresql sql-insert

我已经检查过这个问题,但所有答案似乎都为只有一个字段的情况提供了解决方案。我需要在插入时另外设置一个字段。我尝试过类似的东西:

INSERT INTO foo (x, y)
select id
FROM boo b1, 3
Run Code Online (Sandbox Code Playgroud)

我明白了

SQL 错误 [42601]:错误:“3”处或附近的语法错误

如何使用selectAND 另一个值来INSERT INTOfoo?

Ber*_*rgi 7

你可能想要

\n
INSERT INTO foo (x, y)\nSELECT b1.id, 3\nFROM boo b1;\n
Run Code Online (Sandbox Code Playgroud)\n

字面值必须进入SELECT子句,它不是FROM子句中的另一个表。还可以工作的是

\n
INSERT INTO foo (x, y)\nVALUES\n  ( (SELECT b1.id FROM boo b1 WHERE \xe2\x80\xa6), 3 );\n
Run Code Online (Sandbox Code Playgroud)\n

或者

\n
INSERT INTO foo (x, y)\nSELECT (SELECT b1.id FROM boo b1 WHERE \xe2\x80\xa6), 3;\n
Run Code Online (Sandbox Code Playgroud)\n

但只有当内部SELECT(子查询)使用适当的WHERE条件返回恰好一个值时,这些才有效。

\n