关于MySQL删除主从表数据问题
- 当两张表没有建立任何关系的时候,那么可以随意删除其中任何一张表中的任何记录。
- 如果两张表建立了关系(主外键约束)之后,就不能直接删除主表中的数据(在从表中有关联关系的数据),如果直接执行删除(更新)操作,那么就会出现下图中的错误:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5Gcu02RJdzNygzLc12bj5ic1dWbp5Savw1LcpDc0RHaiojIsJye.png)
解决方法:
要想删除主表中与从表有关联关系的数据,有如下2种方法:
第一种:
先删除从表中与主表有关系的数据,再删除主表中的数据(具体自己操作)。
第二种:
解除主从表的约束关系。
一般来说,在我们给主表添加外键时,切记要设计“外键名称”,以便于日后可以删除外键约束。
声明外键约束语法:
alter table 从表名 add [constraint] [外键名称] foreign key(从表中的外键字段名) references 主表(主表的主键);
[外键名称]:用于删除外键约束,一般建议以“_fk”结尾。
【解除方法】:
alter table 从表名 drop foreign key 外键名称;
然后尽情的删除吧!!!