MySQL外键的使用、更新或者删除主键的时候同时对从表做操作

3 篇文章 0 订阅

首先,如何定义一个外键。

需要两个表,一个主表,一个从表。

student表(从表)

grade表(主表)

从表中有一个属性对应的是主表中的主键或者其他唯一的键。在这个例子中国student表的gid就是对应于grade表中的id的。

那么开始关联外键

alter table 表名 add constraint FK_ID foreign key (外键名) REFERENCES 外表表名 (主键名字)
alter table student add constraint FK_ID foreign key (gid) REFERENCES grade (id)

关联完成之后,在从表的外键行,Key列就会有MUL的属性显示。证明关联成功。

如果不放心还可以利用

show create table student

来查看表的详细信息。

注意,这个时候可以有附加项。

在关联外键的语句后面加入添加ON DELETE 或者ON UPDATE语句,来控制当主表中的数据被删除或者被修改的时候,从表中对应的数据应该如何操作。其具体操作如下:

ON UPDATE {CASCADE|SET NULL|NO ACTION|RESTRICT}
ON DELETE {CASCADE|SET NULL|NO ACTION|RESTRICT}

CASCADE update/delete 的时候同时对从表进行update或者delete的操作

SET NULL 表示主表update/delete 的时候同时对从表匹配的记录设置为null,但是注意子表的外键不能为not null

no action 不进行任何操作

restrict 表示拒绝主表删除或者修改外键关联列,(在不定义on delete 和on update的时候这是默认设置,也是最安全的设置)

删除外键

alter table student drop foreign key FK_ID

此处的FK_ID为上文中定义的外键的名字

 

 

 

 

参考资料:https://blog.csdn.net/qq_33764491/article/details/77387956

参考资料:《MySQL数据库入门》

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值