Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL:Tabelle mit FK-Fehler erstellen (Errno 150)

Der Feldtyp in einem Fremdschlüssel muss mit dem Typ der Spalte übereinstimmen, auf die sie sich beziehen. Sie haben Folgendes (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 ,

Sie versuchen also, auf INT zu verweisen Felder (in den Tabellen state und brand ) mit TINYINT Felder in der Tabelle location . Ich denke, das ist der Fehler, über den sie sich beschwert. Ich bin mir nicht sicher, wie es überhaupt entstanden ist oder warum FOREIGN_KEY_CHECKS auf Null gesetzt wurde hindert MySQL nicht daran, den Fehler zu diagnostizieren, aber was passiert, wenn Sie diesen Typkonflikt beheben?