MYSQL - невозможно создать внешний ключ - PullRequest
0 голосов
/ 19 ноября 2009

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

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)

1 Ответ

2 голосов
/ 19 ноября 2009

Посмотрите на этот пост: 13.6.4.4. ЗАРУБЕЖНЫЙ КЛЮЧ Ограничения и поиск по «150». Здесь сказано:

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

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

...