DBAtlas · データベース運用アトラス

ORA-00001: Unique constraint violated(一意制約違反)

Oracle

意味

挿入または更新される行が UNIQUE 制約または PRIMARY KEY 制約に違反している。つまり同じ値がすでに存在する。

原因

同じキー値の行の再挿入、一意であるべき列への重複データの入力、またはレプリケーション/再実行時に同じレコードを 2 回処理すること。

対処方法

エラーメッセージの制約名から違反した列を特定する: SELECT column_name FROM all_cons_columns WHERE constraint_name = 'CONSTRAINT_NAME'。重複データの検出には GROUP BY ... HAVING COUNT(*) > 1 を使う。アプリケーションでは既存レコードに対して INSERT ではなく UPDATE または MERGE を使う。シーケンス の値が遅れている場合は ALTER SEQUENCE で進める。

DBAtlas で開く →

同じデータベースの他の項目