Jenis bidang dalam kunci asing harus sama dengan jenis kolom yang mereka referensikan. Anda memiliki yang berikut (snipping):
CREATE TABLE IF NOT EXISTS `state` (
`state_id` INT NOT NULL AUTO_INCREMENT ,
...
CREATE TABLE IF NOT EXISTS `brand` (
`brand_id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
...
CREATE TABLE IF NOT EXISTS `location` (
...
`state_id` TINYINT UNSIGNED NULL DEFAULT NULL ,
...
`brand_id` TINYINT UNSIGNED NOT NULL ,
jadi Anda mencoba merujuk ke INT
bidang (dalam tabel state
dan brand
) dengan TINYINT
bidang dalam tabel location
. Saya pikir itu kesalahan yang dikeluhkan. Tidak yakin bagaimana awalnya, atau mengapa mengabaikan FOREIGN_KEY_CHECKS
tidak menghentikan MySQL dari mendiagnosis kesalahan, tetapi apa yang terjadi jika Anda memperbaiki ketidakcocokan jenis ini?