2009-09-09 5 views
0

Я пытаюсь добавить внешний ключ к существующей таблице и возникли проблемы. Я понял, что у меня была ошибка в синтаксисе, поэтому я обновил файл hibernate.cfg.xml для автоматического обновления.Невозможно создать внешний ключ

Как оказалось, спящий режим имел такую ​​же ошибку. Вот мой SQL, чтобы добавить внешний ключ:

alter table pbi add index FKEA3F7BDE9BAB051 (FK_idP), add constraint FKEA3F7BDE9BAB051 foreign key (FK_idP) references p (idP) 

и ошибка:

Cannot add or update a child row: a foreign key constraint fails (`db`.`#sql-6f8_3`, CONSTRAINT `FKEA3F7BDE9BAB051` FOREIGN KEY (`fk_idP`) REFERENCES `p` (`idP`)) 

Может кто-нибудь придумать причину, почему это провалится?

ответ

3

Эта ошибка означает, что ограничение не может быть применено, поскольку существуют существующие записи, которые могут его нарушить.

В вашем случае, pbi таблица имеет строки, в которых FK_idP столбец имеет значение, для которого нет подходящих записей с этим значением в столбце idPp таблицы.

+0

Да, это было. Я должен был удалить предложение NOT NULL в запросе столбца добавления для добавления внешнего ключа (или выполнить миграцию перед добавлением ключа) – Jesse

Смежные вопросы