8.4.2 删除有外键约束的主表
删除有外键约束的主表时,如果直接删除主表,MySQL会报错。此时,有两种方式删除有外键约束的主表,一种方式是先删除有外键约束的从表,再删除主表;另一种方式为先解除外键约束,再删除主表。
在大多数情况下,删除有外键约束的主表时需要保留从表,所以本节先简单介绍如何解除外键约束,然后再删除主表。另一种方式是先删除从表,再删除主表,这种方式比较简单,读者只需要按照顺序先删除从表,再删除主表即可。
在8.1.3节中,数据表t_goods_category与数据表t_goods具有外键约束,并且t_goods_category为主表,t_goods为从表。此时,直接删除主表t_goods_category,MySQL会抛出错误信息。
mysql> DROP TABLE t_goods_category;
ERROR 3730 (HY000): Cannot drop table 't_goods_category' referenced by a foreign key constraint
'foreign_category' on table 't_goods'.