Mysql错误1451,但找不到具有引用id的行

Mysql错误1451,但找不到具有引用id的行,mysql,symfony,doctrine-orm,cascade,mysql-error-1451,Mysql,Symfony,Doctrine Orm,Cascade,Mysql Error 1451,我需要从表中删除一行。我得到一个1451错误,这意味着约束失败。但当我试图找到这种关系时,什么都没有出现 mysql> delete from A where id=961; ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`xxx`.`B`, CONSTRAINT `FK_D273C62CBE4E457A` FOREIGN KEY (`a

我需要从表中删除一行。我得到一个1451错误,这意味着约束失败。但当我试图找到这种关系时,什么都没有出现

mysql> delete from A where id=961;
ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key 
    constraint fails (`xxx`.`B`, CONSTRAINT `FK_D273C62CBE4E457A` FOREIGN KEY 
    (`agencementDimension_id`) REFERENCES `A` (`id`))
mysql> select * from B where agencementDimension_id=961;
Empty set (0.00 sec)

条令+Symfony 2产生了限制。我添加了“级联删除”和更新的模式,但没有更改“数据库模式与映射文件同步”。

为避免此问题,请在您的控件中添加关于删除级联的

这里有一篇文章展示了如何在symfony学说中做到这一点


此错误表示您的表A具有字段名“id”,并且用作字段“AgencyDimension\u id”的引用,因此无法删除此记录


您必须删除所有子行才能删除此记录,或者您可以通过使用Symfony 2和DORICTION 2在delete CASCADE上设置
属性来自动删除外键约束

,我在delete CASCADE上添加了JoinColumn onDelete属性来删除约束:

 * @ORM\JoinColumn(name="agencementDimension_id", referencedColumnName="id", onDelete="CASCADE")
将MySQL错误消息更改为:

mysql> delete from A where id=961;
ERROR 1451 (23000): Cannot delete or update a parent row: 
a foreign key constraint fails (`xxx`.`C`, CONSTRAINT `FK_BF92805FD55A3663` 
FOREIGN (`agencementVersionDimension_id`) REFERENCES `B` (`id`))

我在B和C之间有第二个关系。我不知道为什么MySQL从一开始就不告诉我。无论如何,我已经能够从C中删除行,这允许我从A中删除行

如果您建立关系,并且在创建约束时在删除级联上使用此类型要求,那么下次尝试删除链接到id=961的子行。我正在使用Symfony+原则生成架构和请求,我不想弄乱自动生成的约束:/n通过添加“onDelete=CASCADE”,mysql错误消息改变了,我注意到我有第三个表,一个孩子的孩子!这就是问题所在,我在第二个关系中也添加了“onDelete=CASCADE”,它成功了!谢谢我是否需要使用解决方案创建一条消息并将其标记为已解决?如果您查看我的第二个请求,我没有找到任何子项。这就是我怀疑的原因。检查并遵循这里提供的公认答案,我认为任何这些都应该解决您的问题