「mm_ads」と「mm_users」の2つのテーブルがあります。「mm_ads」はMyisamデータベースエンジンを使用し、「mm_users」はInnoDbを使用します。私が読んだところによると、後者のエンジンはトランザクションであり、最初のエンジンはトランザクションではないため、このような状況で外部キー参照を作成することは不可能です。しかし、私が実行すると:
ALTER TABLE mm_ads ADD CONSTRAINT FK_76EC3E1DF132696E3358 FOREIGN KEY (userid) REFERENCES mm_users (id)
エラーは表示されず、影響を受けた行の数だけが報告されます。私が見るより、fkはテーブルの列のインデックスだけで作成されているわけではありません。問題を調べてみると、テーブルのエンジンが異なることがわかったので、mm_adsのエンジンをInnodbに変更しました。しかし、コマンドを実行すると、このエラーが発生します。
Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`admin_pw`.<result 2 when explaining filename '#sql-61b_3019e'>, CONSTRAINT `FK_76EC3E1DF132696E3358` FOREIGN KEY (`userid`) REFERENCES `mm_users` (`id`))
useridとidのタイプは同じで、テーブルに値があります。