Jeg har modtaget denne besked mange gange, mens jeg brugte 3. parts værktøjer til at oprette tabeller og derefter begrænse mod eksisterende tabeller. Det er enten én af to ting:
intkolonner har forskellige størrelserintkolonner har forskellige flag (uden AUTO_INCREMENT)
Som et eksempel oprettede jeg en tabel med et værktøj, der på en eller anden måde oprettede en kolonne som INT(10) i stedet for den forventede INT(11) . Selvom jeg lige har valgt INT når du oprettede begge, blev det rodet - aldrig fundet hvorfor.
Lang historie kort, det er generelt bedst at udtrykkeligt angive INT størrelse, når du opretter en tabel.
I dit tilfælde burde følgende virke:
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;