sql >> Databasteknik >  >> RDS >> Mysql

MySQL:Skapar tabell med FK-fel (fel nr 150)

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?



  1. MySQL fulltextsökning, varför får jag felaktiga argument för att MATCH

  2. Gruppera efter alias (Oracle)

  3. PHP, MySQL, PDO-transaktioner - Stoppar koden inuti försöksblocket vid commit()?

  4. Hur kan jag hitta en kolumn överallt i SQL Server?