我在运行更新声明时遇到以下问题:
更新已取消:尝试使用多个连接行的值
更新目标行
答案 0 :(得分:1)
尝试多次更新行时会发生此错误。下面是一个简单的例子。
create temp table valuetst (
column1 varchar(10)
)
distribute on random;
insert into valuetst
select 'tstval'
update valuetst u set u.column1=aa.test
from (select 'tstval' as column1, 'asdasd' as test
union all
select 'tstval' as column1, 'number2' as test) aa
where u.column1=aa.column1
为避免错误,您需要确保每行只要求表更新一次。
正确更新的示例
update valuetst u set u.column1=aa.test
from (select 'tstval' as column1, 'asdasd' as test) aa
where u.column1=aa.column1