ホームページ >データベース >mysql チュートリアル >SQL Server の INSERT ステートメントが FOREIGN KEY 制約と競合するのはなぜですか?
SQL Server の FOREIGN KEY 制約エラーのトラブルシューティング
SQL Server では、「INSERT ステートメントが FOREIGN KEY 制約と競合しています」エラーが頻繁に生成されます。これは、外部キー関係を介して別のテーブルにリンクされているテーブルにデータを挿入しようとすると発生します。
問題:
このエラーは、ターゲット テーブルの外部キー値が参照先テーブルの既存の主キーと一致しない場合、INSERT 操作中に発生します。
エラーメッセージの例:
<code>Msg 547, Level 16, State 0, Line 1 The INSERT statement conflicted with the FOREIGN KEY constraint "FK_Sup_Item_Sup_Item_Cat". The conflict occurred in database "dev_bo", table "dbo.Sup_Item_Cat". The statement has been terminated.</code>
このメッセージは、Sup_Item
外部キー値 ('123123') が sup_item_cat_id
テーブルの主キーとして存在しないため、Sup_Item_Cat
テーブルへの挿入が失敗したことを示します。
解決策:
修正は簡単です。挿入している外部キー値が、参照先テーブル内の既存の主キーと一致することを確認します。 この例では、一致する sup_item_cat_id
が Sup_Item_Cat
にすでに存在している必要があります。
SQL Server Management Studio の sp_help
コマンドを使用して、外部キー制約と関連テーブルを調べます。たとえば、sp_help 'dbo.Sup_Item_Cat'
はそのテーブルの外部キー制約の詳細を提供し、参照されるテーブルと列を識別し、INSERT ステートメントが有効なデータを使用していることを確認するのに役立ちます。
以上がSQL Server の INSERT ステートメントが FOREIGN KEY 制約と競合するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。