更新时间:2024-09-05 GMT+08:00

存在外键的表无法删除

场景描述

删除MySQL表时,如果表中有外键(foreign key),会出现如下报错,且和用户权限无关:

ERROR 1451 (23000): Cannot delete or update parent row: a foreign key constraint fails ………… 

原因分析

这个表和其他表有外键关系,在MySQL中,设置了外键关联,会造成无法更新或删除数据,避免破坏外键的约束。

可以通过设置变量FOREIGN_KEY_CHECKS值为off,来关闭上述机制,详见官方文档

解决方案

通过设置变量FOREIGN_KEY_CHECKS值为off,来关闭上述机制:

set session foreign_key_checks=off; 
drop table table_name;