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

547: The INSERT/UPDATE/DELETE statement conflicted with the FOREIGN KEY / CHECK constraint(FOREIGN KEY / CHECK 制約との競合)

SQL Server

意味

文が FOREIGN KEY 制約または CHECK 制約に違反した。存在しない親行を参照したか、CHECK ルールに反する値を書き込んだか、まだ参照されている親行を削除しようとした。

原因

FK: 挿入された子行が参照する親行が存在しない。DELETE/UPDATE: 削除/変更対象の親行に依存する子行がある。CHECK: 列の値が定義された条件を満たさない。

対処方法

先に親行を挿入し、次に子行を挿入する。削除では先に依存行を削除するか、適切な場合は ON DELETE CASCADE を定義する。CHECK 違反では値をルールに適合させる。エラーテキストの制約名から違反した制約を特定する。

DBAtlas で開く →

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