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 で進める。
同じデータベースの他の項目
- ORA-00054Resource busy and acquire with NOWAIT specified or timeout expired(リソースがビジー。NOWAIT 指定またはタイムアウト)
- ORA-00060Deadlock detected while waiting for resource(リソース待機中にデッドロックを検出)
- ORA-01017Invalid username/password; logon denied(ユーザー名/パスワードが無効。ログオン拒否)
- ORA-01555Snapshot too old: rollback segment number too small(スナップショットが古すぎる)