如何在 INSERT 操作中进行 SELECT?
insert into tableX (a_id, b_id)
VALUES ((SELECT service_id
FROM tableY
WHERE id = 10, 2));
但服务器返回语法错误,为什么?
SQL Error [156] [S0001]: Incorrect syntax near the keyword 'select'.
虽然我最初的答案给出了一个可行的解决方案,但我实际上错误地理解了错误的原因。在 VALUES 子句中使用标量子查询没有任何问题。问题中的陈述的问题很简单,就是一个括号放错了位置;标量子查询必须括在括号内。
这应该有效:
insert into tableX (a_id, b_id)
VALUES (
(SELECT service_id
FROM tableY
WHERE id = 10)
, 2
);
原答案
VALUES
只能与文字值结合使用。但是,可以在子查询中使用文字值。做这个:
insert into tableX (a_id, b_id) SELECT service_id, 2 FROM tableY WHERE id = 10
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)