DBAtlas · 数据库运维图谱

ORA-00001: Unique constraint violated(违反唯一约束)

Oracle

含义

插入或更新的行违反了 UNIQUE 或 PRIMARY KEY 约束,即相同的值已经存在。

原因

以相同的键值再次插入行、向必须唯一的列写入重复数据,或在复制/重跑过程中对同一条记录处理了两次。

解决方法

根据错误消息中的约束名找出被违反的列:SELECT column_name FROM all_cons_columns WHERE constraint_name = 'CONSTRAINT_NAME'。使用 GROUP BY ... HAVING COUNT(*) > 1 查找重复数据。在应用中,对已存在的记录使用 UPDATE 或 MERGE 而不是 INSERT。如果序列值落后,用 ALTER SEQUENCE 将其推进。

在 DBAtlas 中打开 →

同一数据库的其他条目