论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
软件与程序人生
›
云原生
›
SQL的约束
SQL的约束
莱莱
论坛元老
|
2022-6-19 06:40:10
|
显示全部楼层
|
阅读模式
楼主
主题
1030
|
帖子
1030
|
积分
3090
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
SQL的约束
概述
概念:约束是作用于表中字段上的规则,用于限制存储表中的数据;
目的:保证数据库中数据的正确性、有效性、完整性;
常见的约束分类:
约束
描述
关键字
非空约束
限制该字段的数据不能为null
not null
唯一约束
保证该字段的所有数据都是唯一的、不重复的
unique
主键约束
主键是一行数据的唯一标识,要求非空且唯一
primary key
默认约束
保存数据时,如果未指定该字段的值,则采用默认值
default '默认值'
检查约束
保证字段满足某一个条件
check (条件1 && 条件2)
外键约束
用来两张表之间建立连接,保证数据的一致性、完整性
foreign key
(PS:检查约束仅在MySQL8.0.16版本之后;约束是作用于表中字段上的,可以在创建表、修改表的时候添加;)
外键约束
外键约束 - 语法
添加外键:
create table 表名(
字段名 数据类型,
...
[constraint] [外键名称] foreign key(外键字段名) references 主表(主表列名)
);
复制代码
alter table 表名 add constraint 外键名称_表名_字段名 foreign key (需要的外键字段名) references 主表(主表列名);
复制代码
删除外键:
alter table 表名 drop foreign key 外键名称_表名_字段名;
复制代码
删除、更新行为:
alter table 表名 add constraint 外键名称_表名_字段名 foreign key (外键字段) references 主表名(主表字段名) on update 更新时行为 on delete 删除时行为;
复制代码
外键约束 - 删除、更新行为
行为
说明
no action
当在父表中删除、更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除、更新。
restrict
当在父表中删除、更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除、更新。
cascade
当在父表中删除、更新对应记录时,首先检查该记录是否有对应外键,如果有则删除、更新外键在子表中的记录。
set null
当在父表中删除对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为null。
set default
父表有变更时,子表将外键列设置成一个默认的值
(PS:set null的要求取决于外键允许设置null;set default在MySQL中的lnnodb不支持;)
来源:
https://www.cnblogs.com/TeaTracing/archive/2022/06/18/16388269.html
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
莱莱
论坛元老
这个人很懒什么都没写!
楼主热帖
HCIA-OSPF协议
mac Error: EACCES: permission denied ...
MySQL 隐式类型转换导致索引失效问题 ...
攻防世界web 难度1新手练习
红标devcpp6.3编译器下载及配置教程 ...
你选对了超融合,可能却买错了交换机! ...
MySQL实战45讲 9
每日一练 数据库linux安装
老妈问我什么是超融合,我是这么和她解 ...
一天吃透Redis面试八股文
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
MES
快速回复
返回顶部
返回列表