2627: Violation of PRIMARY KEY / UNIQUE KEY constraint. Cannot insert duplicate key in object(PRIMARY KEY / UNIQUE KEY 制約違反)
SQL Server意味
PRIMARY KEY または UNIQUE 制約で保護された列に、すでに存在する値を挿入または更新しようとした。重複キーは受け付けられない。
原因
同じ一意値の 2 回目の挿入、既存値と衝突する UPDATE、一意性チェックの欠如、または 2 つの同時リクエストによる同じ行の生成。
対処方法
挿入前に行の存在を確認するか、MERGE / IF NOT EXISTS を使う。冪等な挿入には "INSERT ... WHERE NOT EXISTS" パターンを適用する。エラーを捕捉して意味のあるメッセージを返す。本当に重複データが必要な場合は制約を見直す。キー生成時の衝突を避けるには IDENTITY または SEQUENCE を使う。
同じデータベースの他の項目
- 1205Transaction (Process ID) was deadlocked on lock resources with another process and has been chosen as the deadlock victim(デッドロックの犠牲者として選択された)
- 2601Cannot insert duplicate key row in object with unique index. The duplicate key value is ...(一意インデックスに重複キー行を挿入できない)
- 547The INSERT/UPDATE/DELETE statement conflicted with the FOREIGN KEY / CHECK constraint(FOREIGN KEY / CHECK 制約との競合)
- 18456Login failed for user(ユーザーのログイン失敗)
- 8152String or binary data would be truncated(文字列またはバイナリデータが切り詰められる)