4

私は3つのテーブルを持っています。最後の 2 つのテーブルには、同じフィールドの最初のテーブルへの外部キーがあります。両方の外部キーが UPDATE CASCADE、DELETE CASCADE に設定されています。2 番目のテーブルの子行を削除すると、最初のテーブルの親行は変更されません。しかし、3 番目のテーブルの子行を削除すると、テーブルの最初の行が削除されます。

外部キーは両方の娘と同じように振る舞うべきではありませんか?

4

1 に答える 1

1

私の推測では、テーブル 2 は MyISAM テーブル (外部キーをサポートしていません) を使用し、他の 2 つのテーブルは InnoDB エンジン (外部キーをサポートしています) を使用しています。

ドキュメントから

外部キー関係には、中央のデータ値を保持する親テーブルと、その親を指す同一の値を持つ子テーブルが含まれます。子表にFOREIGN KEY句を指定しています。親テーブルと子テーブルは両方とも InnoDB テーブルである必要があります。TEMPORARY テーブルであってはなりません。

于 2012-11-27T11:07:36.803 に答える