Не могу создать внешний ключ в таблице 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&amp;page=Status&amp;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, но в вашем объяснении у вас есть только один. Какой из них прав?

Другие вопросы по тегам