未使用php代码删除子行,但正在数据库级别工作
我创建了两个具有以下详细信息的表: 表:事件 表:通知 其中,事件表是子表中的父表和通知表 我已将外键设置为以下内容:未使用php代码删除子行,但正在数据库级别工作,php,mysql,foreign-key-relationship,cascade,Php,Mysql,Foreign Key Relationship,Cascade,我创建了两个具有以下详细信息的表: 表:事件 表:通知 其中,事件表是子表中的父表和通知表 我已将外键设置为以下内容: notification table -> event_id -> foreign key reference (event->id) 当我从数据库中的事件表中删除记录时,通知记录也会被删除 但当我通过php代码对事件表执行删除操作时,我得到以下错误: Cannot add or update a child row: a foreign k
notification table -> event_id -> foreign key reference (event->id)
当我从数据库中的事件表中删除记录时,通知记录也会被删除
但当我通过php代码对事件表执行删除操作时,我得到以下错误:
Cannot add or update a child row: a foreign key constraint fails
(`db_lgo_2014`.`notification`, CONSTRAINT `notification_ibfk_1`
FOREIGN KEY (`event_id`)
REFERENCES `event` (`id`) ON DELETE CASCADE ON UPDATE CASCADE)
我不明白为什么会这样
请帮帮我
谢谢。可能是phpmyadmin软件处理删除操作,因此不会打破限制;如果可能的话,事务应该这样做,因为您仅在事务期间“打破”约束,但在提交时(如果我记得DB类是正确的),您甚至不能在事务内部打破FK关系。儿童记录永远不能成为“孤儿”@卡尔帕纳:你的FK是如何定义的?您是否有关于删除级联的
?如果没有,则必须先手动删除所有子记录,然后再删除父记录。@MarcB:是的,当我从mysql数据库->事件表中删除记录时,我已设置了“删除”和“更新级联”及其工作方式,但当我从php代码中执行相同操作时,我得到了一个错误。父记录也从php代码中删除了,但我在使用cascade删除子记录时得到了错误