किसी विदेशी कुंजी में फ़ील्ड का प्रकार उनके द्वारा संदर्भित कॉलम के प्रकार के समान होना चाहिए। आपके पास निम्नलिखित (स्निपिंग) हैं:
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
) TINYINT
. के साथ तालिका में फ़ील्ड location
. मुझे लगता है कि यही वह त्रुटि है जिसके बारे में वह शिकायत कर रहा है। सुनिश्चित नहीं है कि यह पहली बार में कैसे आया, या FOREIGN_KEY_CHECKS
को शून्य क्यों किया गया MySQL को त्रुटि का निदान करने से नहीं रोकता है, लेकिन यदि आप इस प्रकार के बेमेल को ठीक करते हैं तो क्या होगा?