2016-04-18 24 views
1

を失敗した私はエラーを得た:MySQLは:子行を追加または更新できません:外部キー制約が

は、子行を追加または更新できません:外部キー制約が

を失敗したこれは私ですクエリを挿入します。

INSERT INTO `swat` (`Category`, `Importance_JK`, `MaxStrength`, `Person_id`, `SWAT_id`, `Strength`, `cost`, `date_Complete`, `due_Date`, `storage_id`, `updated`, `user_FK`) 
    VALUES ('1','2','we1','546','46','we','500','2016-04-19','2016-04-18','','2016-04-18','37') 

私はSQLでこのクエリを印刷する場合は、このMySQLエラーが発生します。

#1452 - 子行を追加または更新できません:外部キー制約が失敗しました( `sidemoin_crucialstuff`.swat`、CONSTRAINT` swat_ibfk_3`)外部キー( `Person_id`)参照` key_people`( `Key_Person_ID`))

助けてください?

+0

を持っているあなたのDDLを表示してください – Jens

+0

[ALTER TABLEの 'FOREIGN KEY(' Importance_JK')REFERENCES 'tbl_importance'(swat_ibfk_1'' のADD CONSTRAINTをswat' ( 'User_ID')、 ADD CONSTRAINT 'swat_ibfk_2' FOREIGN KEY(' user_FK')REFERENCES 'tbl_users'(' user_ID')、 ADD CONSTRAINT 'swat_ibfk_3' FOREIGN KEY(' Person_id')REFERENCES 'key_people'(' Key_Person_ID') 、 ADD CONSTRAINT 'swat_ibfk_4' FOREIGN KEY(' Category')REFERENCES 'swat_category'(' sc_ID'); ] –

+0

コメントとして追加しないでください。あなたの質問に編集機能 – Jens

答えて

0

あなたはあなたの外部キーの値を使用すると、1つのことを行うことができますinserted.Soなっていないため、このエラーを取得FK列でデータベースにNULL値を指定し、クエリを実行し、

+0

を使用して回答を追加@ aarju mishra、しかし私はすでにFK列でDBにNULLを設定しました –

0

にあなたをご確認してみてくださいされています外部キーの制約のためにこのエラーが発生しています。

Person_idの参照をkey_peopleテーブルから追加しました。 Person_idフィールドに追加するすべての値は、key_peopleテーブルに存在する必要があります。あなたはreferencingなので、テーブルテーブルの値です。

したがって、値をswatテーブルに挿入する前に、参照テーブルに値を挿入する必要があることを確認してください。そうしないと、外部キー制約エラーが発生し続けます。

また、対応する列にNULL値を追加しない場合、値が参照表に存在するかどうかを最初に確認することもできます。

注:上記の解決策についてあなたがそれらの 参照列にNULL値を許可している必要がありますプラスあなたは は、外部キーに基づいてデータをフェッチすることを計画している場合、これは完璧なソリューションではありません。

0

あなたはKey_Peopleとの参照b/w Person_idがあります。

これは親子関係と呼ばれます。

子テーブルに挿入する前に、値が親テーブルにある必要があります。 だからそれに応じて、あなたがスワットに挿入する前に、親テーブルに値を挿入するために:)

+0

親テーブルにすでに挿入されています –

+0

希望値はnullではありません。 。 – NishantMittal

関連する問題