【数据库】【约束】彻底理解外键作用 | 理解navicat创建外键方式 | 约束字段值的来源 | 字段值来源于选项

效果展示

在这里插入图片描述

背景

想要让 “字段” 的值来源于另一张表,也就是约束此字段的值。

必备知识点

想要做到这个效果,你需要先认识外键约束
外键约束文章连接

外键产生的行为(删除/更新行为)

添加了外键之后,再删除父表数据时产生的约束行为,我们就称为删除/更新行为。具体的删除/更新行为有以下几种:

行为说明
no action当在父表(主表)中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除/更新。 (与 RESTRICT 一致) 默认行为
restrict当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除/更新。 (与 NO ACTION 一致) 默认行为
cascade当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有,则也删除/更新外键在子表中的记录。
set null当在父表中删除对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为null(这就要求该外键允许取null)。
set default父表有变更时,子表将外键列设置成一个默认的值 (Innodb不支持)

实操Navicat建立外键约束

举个例子,表A的ParamName列、ZhParamName的值都来源于表B的ParamName列,那么提供选项值的表B我们称为主表,表A称为副表

(主表)表B:
B表
为了能够给表A提供选项,需要在表A的“设计表”页面为表A添加外键
在这里插入图片描述

解释
名字随便定义,你喜欢就好
栏位要给(副表)表A提供选项的列
被参考表这里填写(主表)表B的名字
参考栏位填写表B的哪个列跟“栏位”的列绑定
删除时这个根据你的需要来写,一般删除时选择RESTRICT,代表的意思是(主表)删除内容时检查该记录是否有对应外键,如果有则不允许删除
更新时一般填CASCADE,表示主表更新了该内容,如果该内容有外键,那么副表的相关内容也跟着一起更新

实操效果

当你回到(副表)表A后,能看到值被约束了,有选项
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值