Ich habe diese Meldung viele Male erhalten, während ich Tools von Drittanbietern verwendet habe, um Tabellen zu erstellen und dann vorhandene Tabellen einzuschränken. Es ist eines von zwei Dingen:
- Der
int
Spalten haben unterschiedliche Größen - Der
int
Spalten haben unterschiedliche Flags (ohne AUTO_INCREMENT)
Als Beispiel habe ich eine Tabelle mit einem Tool erstellt, das irgendwie eine Spalte als INT(10)
erstellt hat anstelle des erwarteten INT(11)
. Obwohl ich gerade INT
gewählt habe Beim Erstellen beider wurde es durcheinander gebracht - nie aufgespürt, warum.
Um es kurz zu machen, es ist im Allgemeinen am besten, den INT
ausdrücklich anzugeben Größe beim Erstellen einer Tabelle.
In Ihrem Fall sollte Folgendes funktionieren:
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;