外部キーのフィールドのタイプは、それらが参照している列のタイプと同じである必要があります。次の(スニッピング)があります:
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 ,
したがって、INTを参照しようとしています フィールド(テーブル内のstate およびbrand )with TINYINT テーブルlocationのフィールド 。それが不平を言っているエラーだと思います。そもそもどうやってそれが起こったのか、なぜFOREIGN_KEY_CHECKSをゼロにするのかわからない MySQLがエラーを診断するのを止めませんが、このタイプの不一致を修正するとどうなりますか?