这可能是MySQL在InnoDB中设置了foreign key关联,造成无法更新或删除数据。可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况。
SET FOREIGN_KEY_CHECKS = 0;
删除完成后设置
SET FOREIGN_KEY_CHECKS = 1;
但是对于更新字段等操作,必须也将子表的字段同步更新
想要删除父表的数据,需要先禁用外键约束检查:
SET FOREIGN_KEY_CHECKS = 0;
再执行更新语句即可
update dba.dept
set deptno=1110 where deptno=10;
为了确保子表和父表数值一致,也要更新子表相应字段值:
update dba.employee2 set deptno=1110 where deptno=10;