我正在尝试在表中执行更新查询,我试图为某些表插入外键,
查询是:
update TABLE_1 set TABLE_2_ID = (select TABLE_2_ID from TABLE_2)
获取例外:
由以下原因引起:“ORA-01427:单行子查询返回多行
我已经搜索了问题我知道问题是我有多个结果行来自从TABLE_2中选择TABLE_2_ID 我试图在一行中更新,但我无法识别结果
答案 0 :(得分:1)
在"update TABLE_1 set TABLE_2_ID = (select TABLE_2_ID from TABLE_2 where XXXXX)"
中添加一行代码,以确保(select TABLE_2_ID from TABLE_2 where XXXXX)
只返回一个结果
或者像这样
update TABLE_1
set (TABLE_1.a2,TABLE_1.a3) =(select TABLE_2.b2,TABLE_2.b3
from TABLE_2
where TABLE_2.b1= TABLE_1.a1 and TABLE_1.a3=xxx
)
where exists
(select 'X' from TABLE_2 where TABLE_2.b1=TABLE_1.a1 and TABLE_1.a3=xxx);
commit;