Когато получите това неясно съобщение за грешка, можете да разберете по-конкретната грешка, като стартирате
SHOW ENGINE INNODB STATUS;
Най-честите причини са, че когато създавате външен ключ, както референтното поле, така и полето за външен ключ трябва да съвпадат:
- Двигател трябва да е същото напр. InnoDB
- Тип данни трябва да са еднакви и с еднаква дължина.
напр. VARCHAR(20) или INT(10) UNSIGNED - Сравняване трябва да е същото. напр. utf8
- Уникален - Външният ключ трябва да се отнася до поле, което е уникално (обикновено частно) в справочната таблица.
Друга причина за тази грешка е:
Вие сте дефинирали условие SET NULL, въпреки че някои от колоните са дефинирани като NOT NULL.