sql >> Databasteknik >  >> RDS >> Mysql

Skapa tabell misslyckas med Foreign Key Constraint är felaktigt formaterad

Jag har fått det här meddelandet många gånger när jag använde tredjepartsverktyg för att skapa tabeller och sedan begränsa mot befintliga tabeller. Det är antingen en av två saker:

  • int kolumner har olika storlekar
  • int kolumner har olika flaggor (utan AUTO_INCREMENT)

Som ett exempel skapade jag en tabell med ett verktyg som på något sätt skapade en kolumn som INT(10) istället för den förväntade INT(11) . Även om jag precis valde INT när du skapade båda, var det rörigt - aldrig spårat varför.

Lång historia kort, det är i allmänhet bäst att uttryckligen ange INT storlek när du skapar en tabell.

I ditt fall bör följande fungera:

create table users (id int(11) not null auto_increment
, username varchar(255) NOT NULL
, password varchar(255) NOT NULL
, active int NOT NULL
, PRIMARY KEY (id))
ENGINE=InnoDB COLLATE=utf8_unicode_ci;

create table athing (id int(11) not null auto_increment
, name varchar(255) not null
, status varchar(255) not null
, created_by_user_id int(11) not null
, PRIMARY KEY (id)
, CONSTRAINT athing_fk1 FOREIGN KEY (created_by_user_id) REFERENCES users (id)
) ENGINE=InnoDB COLLATE=utf8_unicode_ci;



  1. Senast uppdaterad rad-ID i Mysql

  2. Hur använder jag PostgreSQL JSON(B)-operatorer som innehåller ett frågetecken? via JDBC

  3. Python - mysqlDB, SQLite-resultat som ordbok

  4. Återansluter MySQL vid timeout