Tuto zprávu jsem obdržel mnohokrát při použití nástrojů třetích stran k vytváření tabulek a následnému omezení vůči existujícím tabulkám. Je to buď jedna ze dvou věcí:
int
sloupce mají různé velikostiint
sloupce mají různé příznaky (bez AUTO_INCREMENT)
Jako příklad jsem vytvořil tabulku pomocí nástroje, který nějakým způsobem vytvořil sloupec jako INT(10)
místo očekávaného INT(11)
. I když jsem právě zvolil INT
při vytváření obou to bylo zpackané – nikdy se nezjistilo proč.
Stručně řečeno, obecně je nejlepší výslovně uvést INT
velikost při vytváření tabulky.
Ve vašem případě by mělo fungovat následující:
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;