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 storlekarint
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;