2016-03-28 5 views
0

ので、既存のテーブル#1452-ことができます追加または子の行は更新されませ:外部キー制約が失敗した( `testdatabase`.`#をSQL-1

ALTER TABLE retailer_commission ADD FOREIGN KEY (Retailer_Id) REFERENCES retailer(Id) 

enter image description here

+0

両方の表(親/クライアント)のスキーマを表示しています...両方の列のスキーマ/データ型/プロパティが同じではないようです.... –

+0

両方の表スキーマは同じです(データ型はint(11)) – dev1

+0

両方のテーブルの "show create table mytable"の出力。 –

答えて

0

に外部キーを追加する方法retailerテーブル内retailer_commissionテーブル内のRetailer_id列とId列のタイプと同じタイプ(int(11))の両方があり、あなたのエラーのために別の説明がなければならない。

一つの可能​​性の高い電子説明すると、retailer_commissionテーブルには、Retailer_idの値を持つレコードがあり、これは存在しないretailerのレコードを参照しています。

次のクエリはあなたに非空のセットを与えた場合、レコードが返された問題ととして考慮されるべきである。

SELECT rc.* 
FROM retailer_commission rc LEFT JOIN retailer r 
    ON rc.Retailer_id = r.Id 
WHERE r.Id IS NULL 
+0

私はこのクエリを使用しています"#1452 - 子行を追加または更新できません:外部キー制約が失敗しました(' testdatabase'.'#sql-15c0_dc'、CONSTRAINT " – dev1

0

問題は外部キーテーブルでは、解決されたとの理由で、レコードがたくさんありますこのエラーが発生しましたが、このテーブル(外部テーブル)を切り捨てて「ALTER TABLE retailer_commission ADE FOREIGN KEY(Retailer_Id)REFERENCES retailer(Id)」というクエリを実行しました。

+0

私の答えはおそらく何が起こったのかの理由。 –

関連する問題