Dari FOREIGN KEY
Batasan
Jika Anda membuat ulang tabel yang dijatuhkan, tabel tersebut harus memiliki definisi yang sesuai dengan batasan kunci asing yang merujuknya. Itu harus memiliki nama dan jenis kolom yang tepat, dan harus memiliki indeks pada kunci yang direferensikan, seperti yang dinyatakan sebelumnya. Jika ini tidak terpenuhi, MySQL mengembalikan nomor kesalahan 1005 dan merujuk ke kesalahan150 dalam pesan kesalahan.
kecurigaan saya apakah itu karena Anda tidak membuat foo
sebagai InnoDB, karena yang lainnya terlihat OK.
Sunting:dari halaman yang sama -
Kedua tabel harus berupa tabel InnoDB dan tidak boleh berupa tabel SEMENTARA.