更新取消:尝试使用来自多个连接行的值更新目标行

Posted

技术标签:

【中文标题】更新取消:尝试使用来自多个连接行的值更新目标行【英文标题】:Update canceled: attempt to update a target row with values from multiple join rows 【发布时间】:2014-01-17 06:52:15 【问题描述】:

我在运行更新语句时遇到以下问题:

【问题讨论】:

【参考方案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

【讨论】:

以上是关于更新取消:尝试使用来自多个连接行的值更新目标行的主要内容,如果未能解决你的问题,请参考以下文章

更新可能包含没有目标的 href 的表行的值

表格 - 更新当前行的单元格

更新表中所有行的有效方法

如何返回更新行的详细信息?

SQLAlchemy中所有行的高效更新

根据行中的值,使用值更新SQL行的最快方法是什么?