Mysql
 sql >> база данни >  >> RDS >> Mysql

Създаването на таблица е неуспешно с Ограничение на външния ключ е неправилно формирано

Получавах това съобщение много пъти, докато използвах инструменти на трети страни за създаване на таблици и след това ограничаване спрямо съществуващи таблици. Това е едно от двете неща:

  • 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;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изпращане на пароли през мрежата

  2. Неправилен ключов файл с MySQL

  3. MySQL месечна разпродажба за последните 12 месеца, включително месеци без продажба

  4. Преобразуване на IP в Long в MySQL

  5. ГРЕШКА В Mysql 1241 (21000):Операнд трябва да съдържа 1 колона(и)