更新失败,重复行

时间:2013-09-12 17:18:07

标签: sql teradata

我用自己继承的小型数据库教自己SQL。我正在玩Update(),

update a
from sls_ord_fact a, sls_ord_dim b
set cust_acct_key = b.cust_acct_key
where a.sls_ord_key = b.sls_ord_key
and a.sls_ord_key <> 0
and b.cust_acct_key <> 0
and a.cust_acct_key <> b.cust_acct_key;

我触发了此错误:Duplicate row error in SLS_ORD_FACT

如何识别重复记录???我不太了解数据.....

1 个答案:

答案 0 :(得分:0)

看起来您正在尝试设置SLS_ORD_FACT表的主键(可能是cust_acct_key),并且您尝试将其设置为的新值已经存在于表。由于主键必须是唯一的,因此会导致错误。重复密钥位于b中 - 事实上,它是b.cust_acct_key,可能是SLS_ORD_FACT.cust_acct_key的外键。