sql >> Database >  >> RDS >> Mysql

Tabel maken mislukt met Foreign Key Constraint is onjuist gevormd

Ik heb dit bericht vaak ontvangen tijdens het gebruik van tools van derden om tabellen te maken en vervolgens te beperken tot bestaande tabellen. Het is een van twee dingen:

  • De int kolommen hebben verschillende afmetingen
  • De int kolommen hebben verschillende vlaggen (zonder AUTO_INCREMENT)

Als voorbeeld heb ik een tabel gemaakt met een tool die op de een of andere manier een kolom heeft gemaakt als INT(10) in plaats van de verwachte INT(11) . Ook al heb ik zojuist INT gekozen bij het maken van beide was het in de war - nooit opgespoord waarom.

Om een ​​lang verhaal kort te maken, het is over het algemeen het beste om expliciet de INT . te vermelden grootte bij het maken van een tabel.

In jouw geval zou het volgende moeten werken:

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;



  1. mysql show Aantal rijen uit andere tabel in elke rij

  2. Strings samenvoegen in PostgreSQL

  3. Wat is IN Logische operator in SQL Server - SQL Server / TSQL-zelfstudie, deel 122

  4. LIKE gebruiken in bindParam voor een MySQL PDO-query