mysql删除父表_MySQL教程39-删除被其它表关联的主表

数据表之间经常存在外键关联的情况,这时如果直接删除父表,会破坏数据表的完整性,也会删除失败。

删除父表有以下两种方法:

先删除与它关联的子表,再删除父表;但是这样会同时删除两个表中的数据。

将关联表的外键约束取消,再删除父表;适用于需要保留子表的数据,只删除父表的情况。

下面介绍了如何取消关联表的外键约束并删除主表,也就是上面所说的删除父表的第二种方法。

在数据库中创建两个关联表。创建表 tb_emp4 的 SQL 语句如下:

CREATE TABLEtb_emp4

(

idINT(11) PRIMARY KEY,

nameVARCHAR(22),

locationVARCHAR (50)

);

接下来创建表 tb_emp5,SQL 语句如下:

CREATE TABLEtb_emp5

(

idINT(11) PRIMARY KEY,

nameVARCHAR(25),

deptIdINT(11),

salaryFLOAT,CONSTRAINT fk_emp4_emp5 FOREIGN KEY (deptId) REFERENCEStb_emp4(id)

);

使用 SHOW CREATE TABLE 命令查看表 tb_ emp5 的外键约束,SQL 语句和运行结果如下:

c11947078c5085044f6ed6534be25629.png

由运行结果可以看出,tb_emp5 表为子表,具有名称为 fk_emp4_emp5 的外键约束;tb_emp4 为父表,其主键 id 被子表 tb_ emp5 所关联。

删除被数据表 tb_emp5 关联的数据表 tb_emp4,SQL 语句如下:

26273dfd36dda2457c323238c574bdbc.png

由运行结果可以看出,当主表在存在外键约束时,不能被直接删除。

下面解除子表 tb_emp5 的外键约束,SQL语句和运行结果如下:

7cdbba51f7d74abc8fd992f3059b9cc7.png

语句成功执行后,会取消表 tb_emp4 和表 tb_emp5 之间的关联关系。

解除关联关系后,可以使用 DROP TABLE 语句直接删除父表 tb_emp4,SQL 语句如下:

cda3edf7006d4a3079b56849ceb7e587.png

最后通过 SHOW TABLES 命令查看数据表列表,如下所示:

3a04760ee60668c0817b04fe4ae47008.png

可以发现,数据库列表中已经不存在名称为 tb_emp4 的表,删除成功。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值