mysql update cascade,何时使用“ON UPDATE CASCADE”
何时使用“ON UPDATE CASCADE”
我经常使用“ON DELETE CASCADE”,但我从不使用“ON UPDATE CASCADE”,因为我不太确定在什么情况下它会有用。
为了便于讨论,请看一些代码。CREATE TABLE parent (
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id));CREATE TABLE child (
id INT NOT NULL AUTO_INCREMENT, parent_id INT,
INDEX par_ind (parent_id),
FOREIGN KEY (parent_id)
REFERENCES parent(id)
ON DELETE CASCADE);
对于“ON DELETE CASCADE”,如果id删除了具有a的父级,parent_id = parent.id则将自动删除子级中的记录。这应该没问题。这意味着当id更新父级时,“ON UPDATE CASCADE”会做同样的事情吗?
如果(1)为真,则意味着如果parent.id不可更新(或永远不会更新),则不需要使用“ON UPDATE CASCADE”,就像它是AUTO_INCREMENT或者总是设置为TIMESTAMP。是对的吗?
如果(2)不成立,在其他什么情况下我们应该使用“ON UPDATE CASCADE”?
如果我(由于某种原因)更新了child.parent_id不存在的内容,它会被自动删除吗?
好吧,我知道,上面的一些问题可以通过程序测试来理解,但我也想知道这是否依赖于数据库供应商。
请说清楚。
mysql update cascade,何时使用“ON UPDATE CASCADE”相关推荐
- MySQL的INSERT ··· ON DUPLICATE KEY UPDATE使用的几种情况
MySQL的INSERT ··· ON DUPLICATE KEY UPDATE使用的几种情况 在MySQL数据库中,如果在insert语句后面带上ON DUPLICATE KEY UPDATE 子句 ...
- MySQL外键设置中的的 Cascade、Restrict、SET NULL 、NO ACTION
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ... [RESTRICT | CASCADE] <1> ...
- MySQL外键设置中的的 Cascade、NO ACTION、Restrict、SET NULL
. cascade方式 在父表上update/delete记录时,同步update/delete掉子表的匹配记录 . set null方式 在父表上update/delete记录时,将子表上匹配记录的 ...
- mysql 与 oracle 的连表update
mysql: update 表A a,表B b set a.xx=b.xx where a.id=b.id; oracle update 表A set a.xx=(select b.xx from 表 ...
- mysql之DML(SELECT DELETE INSERT UPDATE)
DML:数据操作语言 INSERT DELETE SELECT UPDATE SELECT: SELECT SELECT-LIST FROM TBNAME|TB ...
- MySQL 数据库常用命令—insert delete update select
引言 MySQL 数据库和其它的数据库一样,也支持增(insert)删(delete)改(update)查(select)操作. insert 基本语法规则 insert into table_nam ...
- MySQL模拟:线上误update的恢复
作为DBA,细心.沉稳是首要的基本素质.不过总有那么一会心烦意乱或者开发同学出现误操作之类的...这里模拟一个误update操作,然后恢复. 如果开发同学有误操作之后最好先别乱动生产环境,需要记录几个 ...
- mysql 触发器不能同时 insert or update or delete_运维日记|SQL server 那点事——DML触发器...
11月19日,21点,小编正六指霸屏,决赛圈1V4,忽然,电话响了,这种感觉很熟悉,不错,上次差点推掉对面水晶的那一幕又上演了--作为一名美创的员工,客户才是第一位,我毫不犹豫的摁下了接听键. X ...
- php mysql update语句_mysql SELECT FOR UPDATE 语句
MySQL 使用SELECT - FOR UPDATE 做事务写入前的确认 以MySQL 的InnoDB 为例,预设的Tansaction isolation level 为REPEATABLE R ...
最新文章
- java filter 返回错误消息_java filter 导致错误310
- class std::vectorclass std::basic_stringchar,struct std::char_traitschar,class std::allocatorch
- linux 中卸载提示设备正忙怎么办?
- ansible service模块使用示例
- 1040 有几个PAT(PAT乙级 C++)
- 豆瓣再被约谈处罚150万!一年被罚20次,豆瓣到底怎么了?
- spring-boot启动失败 Unregistering JMX-exposed beans on shutdown
- java me教程_Java ME基础教程
- svn版本管理软件——创建svn私人仓库
- java field 字段类型_Java Field类
- jQuery控制网页字体大小
- php程序的运行方法
- 如何更改XP系统默认字体 讨论话题……
- Monocular Depth Estimation UsingLaplacian Pyramid-Based Depth Residuals翻译
- 研华IO控制卡硬件接线方式
- 滴滴程序员被亲戚鄙视:年薪八十万不如二本教书的……
- 太阳能电池板原理及工作原理
- 信贷违约风险预测(二)简单的数据探索
- UDK 学习点滴 (不断更新)
- linux tar包分隔 tar split
热门文章
- SQL SERVER 通过SQL得到一百年内每周的开始日期和结束日期
- Jenkins出现一个错误 无法连接到Jenkins如何解决
- 凡科前端笔试之打印题
- 大班计算机课程设计,关于大班语言活动的课程设计
- 阿里云Centos服务器搭建mysql8.0.25
- Python入门-文件操作
- 【数据结构】ArrayList的具体使用(杨辉三角、扑克牌游戏)
- category(类目)的用法,NSDate,NSTimeInterval类的使用
- CSS定位+装饰+伪类选择器拓展
- ionic android 闪退,ionic 程序部署到ios设备闪退或白屏的解法方案