1. ホーム
  2. sql

[解決済み] INSERT ステートメントが FOREIGN KEY 制約と競合する - SQL Server

2022-01-28 18:04:27

質問

以下のエラーが発生します。助けていただけませんか?

<ブロッククオート

Msg 547, レベル 16, ステート 0, 行 1
INSERT 文が FOREIGN KEY 制約 "FK_Sup_Item_Sup_Item_Cat" と競合しています。競合はデータベース "dev_bo"、テーブル "dbo.Sup_Item_Cat"で発生しました。この文は終了されました。

コードです。

insert into sup_item (supplier_id, sup_item_id, name, sup_item_cat_id, 
                      status_code, last_modified_user_id, last_modified_timestamp, client_id)   
values (10162425, 10, 'jaiso', '123123',
        'a', '12', '2010-12-12', '1062425')

最後のカラム client_id がエラーになります。すでに存在する値を dbo.Sup_Item_Cat を、sup_item に対応するカラムに追加してください。

どうすればいいですか?

テーブルの中で dbo.Sup_Item_Cat は、他のテーブルへの外部キー参照を持っています。外部キーは、参照されるテーブルの主キーカラムにない値を、そのカラムに持つことができないという仕組みになっています。

SQL Server Management Studioがあれば、それを開いて sp_help ' dbo.Sup_Item_Cat '. そのFKがどのカラムで、どのテーブルのどのカラムを参照しているかを見てください。不正なデータを挿入していますよ。

もっと説明が必要なことがあれば、教えてください