Java Can';不能创建外键

Java Can';不能创建外键,java,sql,mysql,hibernate,Java,Sql,Mysql,Hibernate,我试图向现有表添加外键,但遇到问题。我想我的语法有一个错误,所以我将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

我试图向现有表添加外键,但遇到问题。我想我的语法有一个错误,所以我将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`))

有人能想出失败的原因吗?

此错误意味着无法应用约束,因为存在违反约束的现有记录


在您的情况下,
pbi
表中有一些行的
FK_idP
列的值与
p
表的
idP
列中的值不匹配。

此错误意味着无法应用约束,因为存在违反该约束的现有记录


在您的例子中,
pbi
表中的行的
FK_idP
列中有一个值,但在
p
表的
idP
列中没有与该值匹配的记录。

是的,就是这样。我必须删除addcolumn查询中的notnull子句来添加外键(或者在添加键之前进行迁移),是的,就是这样。我必须删除addcolumn查询中的notnull子句才能添加外键(或者在添加键之前进行迁移)