外键 级联操作 mysql

级联就是联动的操作

如果主表中

级联更新

效果,请表ID变化,从表关联的数据也发生变化

级联更新

如果主表中的数据删除

从表中与它相关联的数据也删除

演练代码

-- 级联更新演练
-- 一般情况下,主表从表关联后,主表的主键不可以再变了
-- 级联更新的情况就不太一样-- 删除演练表,重新建表
DROP TABLE t1;
DROP TABLE s1;-- 建主表
CREATE TABLE t1(
id INT PRIMARY KEY AUTO_INCREMENT,
tname VARCHAR(4)
);-- 建从表
CREATE TABLE s1(
id INT PRIMARY KEY AUTO_INCREMENT,
sname VARCHAR(4),
tid INT
-- constraint fk_st foreign key (tid) references t1(id) on update cascade
);-- 追加外键
SHOW CREATE TABLE s1;
-- 需要删外键时用下面的
ALTER TABLE s1 DROP FOREIGN KEY fk1;
-- 级联方式添加外键 设置了级联更新
-- 注:写外键时易出错,出问题了细致一些多检察一下
-- alter table 表名 add constraint 外键名 foreign key (外键列名) references 主表名(主表主键名) on update cascade;
ALTER TABLE s1 ADD CONSTRAINT fk1 FOREIGN KEY (tid) REFERENCES t1(id) ON UPDATE CASCADE;-- 给主表添加一个老师
DESC t1;INSERT INTO t1(tname) VALUES('红');-- 查看
SELECT * FROM t1;
SELECT * FROM s1;-- 添加学生与红老师关联
-- 添加学生信息
INSERT INTO s1 VALUES(NULL,'李洛克',1);-- 修改主表的id
-- 目前主表的红老师,已被关联,一般情况下,他不可改主键,不过。我们现在是级联的更新了。
UPDATE t1 SET id=6 WHERE tname='红';
-- 修改成功
-- 查看
SELECT * FROM t1;
SELECT * FROM s1;-- 结果,与红老师相关联的学生实体中记录的tid值,也发生了改变-- 小结
-- 级联更新
-- 如果给从表中的外键列设置了级联更新,当主表中主键发生变化后,会自动的去修改与它相关联的从表中的对应记录
-- 很方便

外键 级联操作 mysql相关推荐

  1. MySQL权限篇之REFERENCES以及外键级联操作

    REFERENCES,对象权限. 建立外键关系权限. 用户要在tb1上建立外键,外键指向tb2,那么该用户必须在tb2上有REFERENCES权限. 当然,还要有在tb1上alter的权限. 比如: ...

  2. mysql外键级联操作_Mysql 外键级联

    如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表.外键是用来实现参照完整性的,不同的外键约束方式将可以使两张表紧密的结合起来,特别是修改或者删除的级联操作将使得日常 ...

  3. 多表操作-外键级联操作

    目录 外键的级联更新和级联删除 什么是级联更新 什么是级联删除 添加级联更新 添加级联删除 同时添加级联更新和级联删除 实例演示 添加外键约束,同时添加级联更新和级联删除 添加后测试 外键的级联更新和 ...

  4. mysql修改级联表数据_MySQL数据库 外键,级联, 修改表的操作

    1.外键: 用来建立两张表之间的关系 - 一对多 - 多对多 - 一对一 研究表与表之间的关系: 1.定义一张 员工部门表 id, name, gender, dep_name, dep_desc - ...

  5. oracle+cascade=gt;true,mysql数据库主外键级联删除脚本RESTRICT -- CASCADE

    在项目中,我们一般在数据库设计的时候做主外键关联设计,要么就不做.但是这样不符合规范,呵呵. 建立主外键关系的时候,默认是不能级联删除的.而出现往往在删除主表的数据时报错, 需要先删除从表然后再删除主 ...

  6. MySQL级联优缺点_【Mysql】外键级联与级联的劣势

    在建表的时候时候,可以对于删除delete.修改update设置为级联.用一个例子先说明外键级联级联的概念 假如数据库中本以存在一张usertable如下: 此user表非常简单,id为主键. 下面我 ...

  7. mysql级联删除外键约束_mysql增加外键级联删除示例

    增加外键级联删除: ALTER TABLE `extends` ADD CONSTRAINT `extends_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES ` ...

  8. MySQL级联优缺点_【Mysql】外键级联与级联的劣势_MySQL

    在建表的时候时候,可以对于删除delete.修改update设置为级联.用一个例子先说明外键级联级联的概念 假如数据库中本以存在一张usertable如下: 此user表非常简单,id为主键. 下面我 ...

  9. oracle中删除级联方法,Oracle 外键级联删除

    Oracle 外键级联删除 日期:2010年5月22日 作者: 近来软件系统中要删除一条记载,就要关联到同时删除好多张表,它们之间还存在着约束联络.所以思索到在树立表时加上约束联络,细致内容如下: S ...

最新文章

  1. java通过异常处理错误,java基础之通过错误处理异常
  2. docker nginx 配置负载均衡
  3. Atom:A hackable text editor for the 21st Century
  4. 回调函数、Java接口回调 总结
  5. java静态和动态的区别是什么意思_Java中的动态和静态多态性有什么区别?
  6. linux echo写php编码,linux使用和基础操作(示例代码)
  7. SkyWalking8.1.0 部署和使用
  8. mysql share mode_mysql锁:mysql lock in share mode 和 select for update
  9. 圣诞快乐:Oracle Database 19c 的10大新特性一览
  10. 计算机组装与维护心得体会作文,《计算机维护与局域网建设》学习心得
  11. C# 用正则表达式替换字符串中所有特殊字符
  12. mdt 计算机名_MDT Administrator
  13. 关于librdkafka编译错误问题解决
  14. html绑定drag事件,HTML-Drag事件(拖拽)
  15. 逻辑学学习.14 --- 谓词逻辑(六):数量量词和摹状词
  16. DOS子程序汇编样例及详解
  17. php实现简单微信支付(提供商户微信)
  18. 【LeetCode】1905-统计子岛屿
  19. android 视频裁剪view拖动,android – 视频使用特定坐标裁剪或缩放?
  20. 华为2019年第一季度业绩曝光;联想and谷歌加入英特尔新晋云计划;即特斯拉起火,蔚来ES8也维修起了火...

热门文章

  1. 因特尔计算棒(Intel Movidius Necural Compute)
  2. 如何写一篇合格的论文(清华大学刘知远)
  3. 【Transformer】CLS(classification)有什么用?
  4. 计算机教师自媒体方向,教师和自媒体,我该选择哪个深耕?
  5. python3 正则 去除 html标签、提取正文内容_Python通过正则表达式去除(过滤)HTML标签,提取文字...
  6. (文档挂起)打印机为什么打印失败?
  7. 端口映射 - 专业术语 - 发问篇
  8. 通过cmd和npm指令,快速引入element-ui组件
  9. 趣味娱乐小程序源码多流量主 趣味制作/藏头诗/隐藏图
  10. 蓝奏网盘直链转换器 v1.1