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

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 を使う。

DBAtlas で開く →

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