mysql中的restrict_Mysql 的 Cascade/Restrict/No action
外键约束对子表的含义:
如果在父表中找不到候选键,则不允许在子表上进行insert/update
外键约束对父表的含义:
在父表上进行update/delete以更新或删除在子表中有一条或多条对应匹配行的候选键时,父表的行为取决于
:在定义子表的外键时指定的on update/on delete子句, InnoDB支持5种方式, 分列如下
. cascade方式
在父表上update/delete记录时,同步update/delete掉子表的匹配记录
On delete cascade从mysql3.23.50开始可用; on update cascade从mysql4.0.8开始可用
. set null方式
在父表上update/delete记录时,将子表上匹配记录的列设为null
要注意子表的外键列不能为not null
On delete set null从mysql3.23.50开始可用; on update set null从mysql4.0.8开始可用
. No action方式
如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作
这个是ANSI SQL-92标准,从mysql4.0.8开始支持
. Restrict方式
同no action, 都是立即检查外键约束
. Set default方式
解析器认识这个action,但Innodb不能识别,不知道是什么意思...
注意:trigger不会受外键cascade行为的影响,即不会解发trigger
在mysql中,与SQL标准相违背的三点
1. 如果在父表中有多个key值相同,那么在进行外键check时,会当成有相同key值的其他行不存在; 比
如当定义了一个restrict行为外键时,一个子表行对应到多个父表行(具有相同key值), Innodb不允许删除父表
上的所有这些行
2. 父子表是同一个表,自我参照时不允许指定on update cascade, on update set null
从mysql4.0.13开始,允许同一个表上的on delete set null
从mysql4.0.21开始,允许同一个表上的on delete cascade
但级联层次不能超出15
3, Innodb在检查unique,constraint约束时,是row by row而不是语句或事务结束;
SQL标准中对constraint的检查是在语句执行完成时
分享到:
2011-01-12 10:05
浏览 2082
分类:数据库
评论
mysql中的restrict_Mysql 的 Cascade/Restrict/No action相关推荐
- mysql cascade|restrict|no action|set null__mysql 外键的几种约束
mysql cascade|restrict|no action|set null MySQL有两种常用的引擎类型:MyISAM和InnoDB.目前只有InnoDB引擎类型支持外键约束.InnoDB中 ...
- MySQL中的级联删除与更新策略on delete restrict on update restrict
MySQL中的级联删除与更新策略on delete restrict on update restrict 在MySQL中,当我们执行级联删除与级联更新时,可能会执行On Delete Restric ...
- mysql alert on delete cascade_如何在mysql中删除级联使用?(How do I use on delete cascade in mysql?)...
如何在mysql中删除级联使用?(How do I use on delete cascade in mysql?) 我有一个组件数据库. 每个组件都是特定的类型. 这意味着组件和类型之间存在多对一的 ...
- mysql setnull_1、Mysql无法创建外键的原因 2、MySql 外键约束 之CASCADE、SET NULL、RESTRICT、NO ACTION分析和作用...
在Mysql中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因. 1. 两个字段的类型或者大小不严格匹配.例如,如果一个 ...
- mysql中nullify_Core Data 数据库 No Action ,Nullify , Cascade , Deny 用法
假设现在有两个实体,Product 和Manufacturer , 产品和制造商,一个产品只有一个制造商,一个制造商则可能会生产多个商品.这时候制造商和产品则是一对多的关系. 制造商.jpeg 制造商 ...
- mysql中关系怎么弄_mysql数据库关系操作
### mysql数据库 #### 知识要点: 1. 数据操作增.删.改 2. 外键约束要求 3. 一对多表关系 4. 一对一表关系 5. 多对多表关系 6. 外键约束的参照操作 ### 数据操作 # ...
- mysql外键约束脚本_如何在MySQL中设置外键约束
(1) 外键的使用: 外键的作用,主要有两个: 一个是让数据库自己通过外键来保证数据的完整性和一致性 一个就是能够增加ER图的可读性 有些人认为外键的建立会给开发时操作数据库带来很大的麻烦.因为数据库 ...
- MySQL中索引与视图的用法与区别详解
索引与视图是我们在日常使用mysql必不可少的一部分,最近在学习中看到一本书中关于这方法写的不错,所以这篇文章主要给大家介绍了关于MySQL中索引与视图的使用与区别的相关资料,需要的朋友可以参考借鉴, ...
- MySQL中如何定义外键[转]
MySQL中如何定义外键 假如某个电脑生产商,它的数据库中保存着整机和配件的产品信息.用来保存整机产品信息的表叫做pc:用来保存配件供货信息的表叫做parts. 在pc表中有一个字段,用来描述这款电脑 ...
最新文章
- 工业4.0是个白日梦吗?
- 如何利用OpenCV寻找轮廓的中心?
- canva旋转图片 js_js和canvas实现旋转图片
- 请求外部图片的时候,遇到403的错误的解决方案
- nodejs环境搭建与express安装配置
- HOJ-2662Pieces Assignment(状态压缩,动态规划)
- Java IO流练习题-获取文本上每个字符出现的次数
- 风控必知必会|两大逻辑表五大基础报表
- 中断(一)—— 综述
- 《架构之美》pdf书籍
- matlab 拉普拉斯金字塔,图像拉普拉斯金字塔(laplacian pyramid)并从金字塔重建原图 matlab程序实现...
- 如何利用区块链技术保护知识产权
- 管理科学与工程 国内核心期刊 国外a刊及SCI
- 不良资产证券化之后,谁来买单?
- 创建ArrayList对象,添加5个元素,使用Iterator遍历输出
- 幼儿体能五项技能测试软件,体能测查 | 幼儿园体能测试项目及标准,建议新手幼师收藏!...
- ViewData与ViewBag比较
- Java 中的Lock锁
- 2021常州市程序设计小能手真题及题解
- cppcheck代码检查工具安装与使用技巧
热门文章
- 数据结构 2.3.7
- 如何限定IP访问服务器端口(只允许指定IP访问数据库服务器的1433端口)
- Java编写简单计算器--实现篇
- 线性非时变系统理论(LTI系统理论)
- Linux C/C++ or 嵌入式面试之《多进程多线程编程系列》(4) 进程同步和通信的方式有哪些?
- 两天签约148个项目,投资总额超900亿,这个领域,马上要有大动作!
- Springboot毕设项目大学生毕业管理系统3ep7m(java+VUE+Mybatis+Maven+Mysql)
- 《汽车配件公司业务管理信息系统》系统设计报告
- numpy中flatten()和ravel()
- 一年换三个城市工作好不好?