首页 > 解决方案 > 插入时违反了唯一约束

问题描述

我正在运行这段代码

INSERT INTO ADW12_DW.WC_MFG SELECT * FROM ADW12_DW.WC_MFG_bkp;
COMMIT;

在此之前,ADW12_DW.WC_MFG 被截断以更新列大小。所以在运行上述代码之前 ADW12_DW.WC_MFG 是空的。

标签: sqloracleinsert

解决方案


添加的数据中可能存在重复项。这是限制插入数据的一种方法:

INSERT INTO ADW12_DW.WC_MFG
    SELECT w.*
    FROM ADW12_DW.WC_MFG_bkp w
    WHERE w.rowid IN (SELECT MIN(w2.rowid)
                      FROM ADW12_DW.WC_MFG_bkp w2
                      WHERE w2.col = w.col
                     );

col代表什么是“独特的”。它可能不止一列。


推荐阅读