Не могу создать внешний ключ в таблице MySQL - PullRequest
3 голосов
/ 24 марта 2011

Когда я пытаюсь это

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 ]

0 голосов
/ 24 марта 2011

Поскольку в вашей таблице есть данные, которые не соответствуют вашим ограничениям (например, несуществующие ключи)

попытайтесь сделать

     select * from Comp_Entry where CompetitionID not in 
        (select distinct CompetitionID from Comp__Competition)
0 голосов
/ 24 марта 2011

Ваша таблица Comp_Entry нуждается в существующем индексе для CompetitionID. Кроме того, ваша команда имеет двойные __ символы в имени таблицы Comp__Competition, но в вашем объяснении у вас есть только один. Какой из них прав?

...