0

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

以下は、エラーを作成しているコードです。

ALTER TABLE 'catalog_eav_attribute' 
  ADD CONSTRAINT 'FK_CATALOG_EAV_ATTRIBUTE_ID' 
  FOREIGN KEY ('attribute_id') REFERENCES 'eav_attribute' ('attribute_id)' 
  ON DELETE CASCADE ON UPDATE CASCADE;

SQL の構造をアップロードしましたが、問題はありませんが、データを挿入すると、上記の関連エラーが発生します。どこかで読んだところ、お粗末なデータが原因であると予測しました。エラーの他の可能性は何ですか? どんな提案や解決策も素晴らしいでしょう。

4

2 に答える 2

0

このエラー メッセージは、attribute_id 列に入力しようとしている数値が eav_attribute.attribute_id 列にまだ存在しないことを意味します。

eav_attribute.attribute_id に既に存在するを挿入できますか? (おそらくできます。)

eav_attribute.attribute_id に存在しない値を挿入しようとして、同じエラーを引き起こすことはありますか?

違いを調整して、完了です。eav_attribute.attribute_id に存在しない属性 ID を特定し、それを修正する必要があります。

于 2012-07-26T14:20:54.840 に答える
0

「InnoDB 以外のストレージ エンジンの場合、MySQL サーバーは CREATE TABLE ステートメントの FOREIGN KEY 構文を解析しますが、それを使用または保存しません。」

出典: http://dev.mysql.com/doc/refman/5.5/en/ansi-diff-foreign-keys.html

よくわかりませんが、テーブルが InnoDB ではなく MyISAM である場合、構文が機能しない可能性があります。

于 2012-07-26T02:58:57.677 に答える