sql >> Database teknologi >  >> RDS >> Mysql

MySQL:Opretter tabel med FK-fejl (fejl 150)

Felttypen i en fremmednøgle skal være den samme som typen af ​​den kolonne, de refererer til. Du har følgende (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 ,

så du prøver at henvise til INT felter (i tabeller state og brand ) med TINYINT felter i tabellen location . Jeg tror, ​​det er fejlen, den klager over. Ikke sikker på, hvordan det opstod i første omgang, eller hvorfor nulstillede FOREIGN_KEY_CHECKS forhindrer ikke MySQL i at diagnosticere fejlen, men hvad sker der, hvis du løser denne type uoverensstemmelse?



  1. Forespørgsel for at få den laveste værdi, der er større end nul, og er ikke NULL

  2. Få den første dag i måneden i PostgreSQL

  3. Sådan bruges variabler i WHERE-sætning til en SQL SELECT-forespørgsel

  4. MyCLI – En MySQL/MariaDB-klient med autofuldførelse og syntaksfremhævning