2009-09-09 74 views
0

我試圖將一個外鍵添加到現有的表,並有問題。我想我的語法錯誤,所以我更新了我的hibernate.cfg.xml文件以自動更新。無法創建外鍵

事實證明,hibernate有同樣的錯誤。這裏是我的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列的值爲idP列的表中沒有與該值匹配的記錄。

+0

是的,就是這樣。我必須刪除添加列查詢中的NOT NULL子句才能添加外鍵(或者在添加鍵之前執行遷移) – Jesse 2009-09-09 17:37:07