Не могу создать внешний ключ в таблице MySQL
Когда я пытаюсь это
ALTER TABLE Comp_Entry
ADD FOREIGN KEY(CompetitionID) REFERENCES Comp__Competition(CompetitionID)
Я получаю эту ошибку
#1005 - Can't create table 'chris_db.#sql-1464b_66' (errno: 150) (<a href="server_engines.php?engine=InnoDB&page=Status&token=7a7f690fbd1413e74979d79fa9044fb0">Details...</a>)
мой Comp_Competition
стол имеет CompetitionID
установить в качестве первичного ключа. Кто-нибудь знаком с этой проблемой?
2 ответа
Потому что в вашей таблице есть данные, которые не соответствуют вашим ограничениям (например, несуществующие ключи)
Попробуйте сделать
select * from Comp_Entry where CompetitionID not in
(select distinct CompetitionID from Comp__Competition)
Ваша таблица Comp_Entry нуждается в существующем индексе для CompetitionID. Кроме того, ваша команда имеет двойной __
символы в имени для таблицы Comp__Competition, но в вашем объяснении у вас есть только один. Какой из них прав?