ホームページ >データベース >mysql チュートリアル >SQL Server の INSERT ステートメントが FOREIGN KEY 制約と競合するのはなぜですか?

SQL Server の INSERT ステートメントが FOREIGN KEY 制約と競合するのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-20 03:57:11573ブラウズ

Why Does My SQL Server INSERT Statement Conflict with a FOREIGN KEY Constraint?

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_idSup_Item_Cat にすでに存在している必要があります。

SQL Server Management Studio の sp_help コマンドを使用して、外部キー制約と関連テーブルを調べます。たとえば、sp_help 'dbo.Sup_Item_Cat' はそのテーブルの外部キー制約の詳細を提供し、参照されるテーブルと列を識別し、INSERT ステートメントが有効なデータを使用していることを確認するのに役立ちます。

以上がSQL Server の INSERT ステートメントが FOREIGN KEY 制約と競合するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。