Database学习 - mysql 数据库 外键
外键
外键约束子表的含义:如果在父表中赵达不到候选键,则不允许在子表上进行insert/update
外键预约对父表的含义:在父表上进行update/delete以更新或删除子表中有一条或多条对应匹配的候选键时,父表的行为取决于,在定义子表的外键时指定的on update/ on delete 字句.
创建外键
建表时定义外键
foreign key (子表-字段) references 主表(字段)
注意:外键关联的主键的数据类型一定要保持一致
添加外键
alter table 表名 add constraint 外键名 foreign key (子表-字段) references 主表(字段);
删除外键
alter table 表名 drop foreign key 外键名;
四种外键删除方式:
外键的级联同步删除配置:(cascade方式)
创建表方式:
foreign key (子表-字段) references 主表(字段) on delete cascade;
添加表方式:
alter table 表名 add constraint 外键名 foreign key (子表-字段) references 主表(字段) on delete cascade;
外键的级联删除同步为空配置:(set null方式)
创建表方式:
foreign key (子表-字段) references 主表(字段) on delete set null;
添加表方式:
alter table 表名 add constraint 外键名 foreign key (子表-字段) references 主表(字段) on delete set null;
外键的级联操作配置:(restrict方式):
拒绝对父表进行删除更新操作
外键的级联操作配置:(no action方式):
在mysql中restrict,如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作.
Database学习 - mysql 数据库 外键的更多相关文章
- 第二百八十节,MySQL数据库-外键链表之一对多,多对多
MySQL数据库-外键链表之一对多,多对多 外键链表之一对多 外键链表:就是a表通过外键连接b表的主键,建立链表关系,需要注意的是a表外键字段类型,必须与要关联的b表的主键字段类型一致,否则无法创建索 ...
- MySQL数据库--外键约束及外键使用
什么是主键.外键关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键. 比如: 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯 ...
- MySQL数据库 外键,级联, 修改表的操作
1.外键: 用来建立两张表之间的关系 - 一对多 - 多对多 - 一对一 研究表与表之间的关系: 1.定义一张 员工部门表 id, name, gender, dep_name, dep_desc - ...
- mysql数据库外键删除更新规则
1.CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行. 2.SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL.如果使用该选项,必须保证子表列没有指定NOT NULL. ...
- mysql数据库外键、主键详解
一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 比如 学生表(学号,姓名,性别,班级) 其中每个学生的学 ...
- Database学习 - mysql 数据库 索引
索引 索引在mysql 中也叫 '键',是存储引擎用来快速找到记录的一种数据结构.索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要. 索引优化应该是对查询性能优化 ...
- Database学习 - mysql 数据库 表操作
mysql 数据库 表操作 创建数据表 基本语法格式: 创建数据表: create table 表名( 字段名 datatype 约束, 字段名 datatype 约束, ...... ) 修改表名 ...
- MySQL数据库-外键链表之一对多,多对多
外键链表之一对多 外键链表:就是a表通过外键连接b表的主键,建立链表关系,需要注意的是a表外键字段类型,必须与要关联的b表的主键字段类型一致,否则无法创建索引 一对多:就是b表的某一个字段值对应a表外 ...
- Database学习 - mysql 数据库 多表/复合/子 查询
多表查询 多表查询,基本规则,通过两表有关联字段的进行条件匹配查询 内连接查询 方式一: SELECT 查看字段名[,查看字段名] FROM 一表名,二表名 WHERE 一/二表.字段 = 一/二表. ...
随机推荐
- BZOJ3510 首都(LCT)
即动态维护树的重心.考虑合并后的新重心一定在两棵树的重心的连线上.于是对每个点维护其子树大小,合并时在这条链的splay上二分即可.至于如何维护子树大小,见https://blog.csdn.net/ ...
- $Min\_25$筛学习笔记
\(Min\_25\)筛学习笔记 这种神仙东西不写点东西一下就忘了QAQ 资料和代码出处 资料2 资料3 打死我也不承认参考了yyb的 \(Min\_25\)筛可以干嘛?下文中未特殊说明\(P\)均指 ...
- [hdu3966]Aragorn's Story
传送门 题目描述 Our protagonist is the handsome human prince Aragorn comes from The Lord of the Rings. One ...
- scrapy 中间件
一.中间件的分类 scrapy的中间件理论上有三种(Schduler Middleware,Spider Middleware,Downloader Middleware),在应用上一般有以下两种 1 ...
- wordcloud词云
借鉴别人的一个小例子,快速生成词云的代码: from wordcloud import WordCloud f = open(u'txt/AliceEN.txt','r').read() wordcl ...
- 序列自动机—— [FJOI2016]所有公共子序列问题
序列自动机: 是一个处理子序列的自动机.就这样. 建造:(By猫老师:immoralCO猫) s[] next[][] memset(next[n], -, <<); for(int i ...
- [IOI2005]River 河流
题目大意: 给定n个点的有根树,每条边有边权,每个点有点权w, 你要在k个点上建立伐木场,对于每个没有建伐木场的点x,令与它最近的祖先.有伐木场的点,为y,你需要支付dis(x,y)*w[x]的代价. ...
- Access,MSSQL:随机读取N条记录
今天试着将一个网站使用的mssql转换为Access,但网站首页有一段代码是随机读取n条记录: SQL Server:Select TOP N * From TABLE Order By NewID( ...
- Java内存模型概念简单介绍,想深入自行百度
- Failed to load because no supported source was found
Uncaught (in promise) DOMException: Failed to load because no supported source was found? 等待解决: