Вопрос

Когда я выполняю приведенный ниже запрос, он выдает ошибку,

alter table `ttis`.`users` 
add constraint `FK_Role_ID` FOREIGN KEY (`ROLE_ID`) REFERENCES `roles` (`ROLE_ID`)

Ошибка:

Error Code : 1005
Can't create table 'ttis.#sql-9c_8a' (errno: 150)
Это было полезно?

Решение

Взгляните на этот пост: 13.6.4.4.Ограничения ВНЕШНЕГО КЛЮЧА и найдите "150".Здесь написано:

Если вы повторно создаете таблицу, которая была удалена, у нее должно быть определение , соответствующее внешнему ключу ограничения, ссылающиеся на нее.Он должен иметь правильные имена и типы столбцов, и он должен иметь индексы на ссылочных ключах, как указано ранее.Если они не выполняются, MySQL возвращает номер ошибки 1005 и ссылается на ошибку 150 в сообщении об ошибке.

Если MySQL сообщает об ошибке с номером 1005 из инструкции CREATE TABLE, и сообщение об ошибке ссылается на ошибку 150, создание таблицы не удалось, потому что ограничение внешнего ключа не было правильно сформировано.Аналогично, если ALTER TABLE завершается с ошибкой и это ссылается на ошибку 150, это означает, что внешний ключ определение было бы неправильно сформировано для измененной таблицы.Вы можете использовать ПОКАЗАТЬ СОСТОЯНИЕ INNODB ЯДРА для отображения подробного объяснения самой последней ошибки внешнего ключа InnoDB на сервере .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top