11

外部キーを既存のテーブル列に割り当てているときに、次のエラーが発生します。

エラー 1452 (23000): 子行を追加または更新できません: 外部キー制約が失敗しました ( c_x_parsing. #sql-787_1, CONSTRAINT #sql-787_1_ibfk_1FOREIGN KEY ( nct_id) REFERENCES cdb( nct_id))

以下は私のクエリです:

ALTER TABLE c_int ADD FOREIGN KEY (n_id) REFERENCES cdb (n_id);

私の親テーブルは cdb cdb で、子テーブルは c_int です。

次のコマンドですでに試したので、解決策を提案してください。

ALTER TABLE cdb ENGINE=InnoDB;
ALTER TABLE c_int ENGINE=InnoDB;
4

3 に答える 3

12

問題はコマンドではなく、データです。親テーブルに存在しない子テーブルの値があります。

次のようなものを使用して、問題の原因となっているデータを特定してみてください。

SELECT n_id FROM c_int WHERE n_id NOT IN (SELECT n_id FROM cdb)
于 2013-10-08T07:04:55.070 に答える