电子元器件廖先 发表于 2023-9-14 12:00:01

使用插入到选择中会导致选择附近的语法不正确,为什么?

如何在INSERT操作中进行SELECT?
insert into tableX (a_id, b_id)
VALUES ((SELECT service_id
         FROM tableY
         WHERE id = 10, 2));
但是服务器返回语法错误,为什么?
SQL Error : 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
页: [1]
查看完整版本: 使用插入到选择中会导致选择附近的语法不正确,为什么?