Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL:Tworzenie tabeli z błędem FK (errno 150)

Typ pola w kluczu obcym musi być taki sam jak typ kolumny, do której się odwołuje. Masz następujące (wycinanie):

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 ,

więc próbujesz odwołać się do INT pola (w tabelach state i brand ) z TINYINT pola w tabeli location . Myślę, że to błąd, na który się skarży. Nie wiem, jak to się w ogóle pojawiło, ani dlaczego wyzerowałem FOREIGN_KEY_CHECKS nie powstrzymuje MySQL przed diagnozowaniem błędu, ale co się stanie, jeśli naprawisz ten niezgodność?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oblicz ŚREDNIĄ z 2 kolumn dla każdego wiersza w SQL

  2. Jak zdefiniować liczbę całkowitą bez znaku w SQLAlchemy?

  3. Jak wykonać kopię zapasową i przywrócić bazę danych MySQL?

  4. Wybierz z menu rozwijanego i odśwież stronę

  5. Definiowanie klucza złożonego z automatycznym przyrostem w MySQL