Typen av fält i en främmande nyckel måste vara densamma som typen av kolumnen som de refererar till. Du har följande (klippning):
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 ,
så du försöker hänvisa till INT
fält (i tabellerna state
och brand
) med TINYINT
fält i tabellen location
. Jag tror att det är felet den klagar på. Osäker på hur det kom upp från första början, eller varför man nollställde FOREIGN_KEY_CHECKS
hindrar inte MySQL från att diagnostisera felet, men vad händer om du åtgärdar denna typfel?