有外键的表无法删除报错ERROR[1451]的解决方案
场景描述
数据库中的表,root用户也没有权限删除或修改。报错信息如下:
ERROR[1451] -Cannot deleteorupdatea parent row:
aforeignkeyconstraintfails (…)
故障分析
该表的frm文件在sys_tables里也存在,这个表跟其他表有外键关系,因此不能直接删除。
因为RDS for MySQL中设置了foreign key关联,造成无法更新或删除数据,可以通过设置“FOREIGN_KEY_CHECKS”变量来避免这种情况。
解决方案
set session foreign_key_checks=off; drop table table_name;
关闭foreign_key_checks,即可删除表。