Получавах това съобщение много пъти, докато използвах инструменти на трети страни за създаване на таблици и след това ограничаване спрямо съществуващи таблици. Това е едно от двете неща:
int
колоните имат различни размериint
колоните имат различни флагове (без AUTO_INCREMENT)
Като пример създадох таблица с инструмент, който по някакъв начин създаде колона като INT(10)
вместо очаквания INT(11)
. Въпреки че току-що избрах INT
при създаването и на двете, беше объркано - никога не беше проследено защо.
Накратко, обикновено е най-добре да посочите изрично INT
размер при създаване на таблица.
Във вашия случай трябва да работи следното:
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;