mysql级联是什么意思_MySql级联操作
转自:http://blog.csdn.net/codeforme/article/details/5539454
外键约束对子表的含义:
如果在父表中找不到候选键,则不允许在子表上进行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的检查是在语句执行完成时
mysql级联是什么意思_MySql级联操作相关推荐
- mysql利用级联删除和更新_MySql级联删除和更新
(一)利用外键实现级联删除 1.先建立测试数据库 CREATE TABLE `roottb` ( `id` INT(11) UNSIGNED AUTO_INCREMENT NOT NULL, `dat ...
- mysql 级联同步不成功_MySQL级联复制的同步问题(一)
展开阅读全文 今天碰到一个有些奇怪的问题,有一套环境,在主从复制的时候有一些问题. 大体的流程设计如下: 三个节点位于三个不同的区域,因为节点1和节点3之间的网络存在问题,所以走了节点2来中转,由此可 ...
- mysql查询男生基本情况_MYSQL查询操作 详细
学习目标 1 掌握select查询所有字段.指定字段的数据 2 掌握消除重复行命令distinct 3 掌握as给字段.表起别名 4 掌握条件查询where后跟比较运算符.逻辑运算符的用法 5 掌握条 ...
- mysql不是实际删除_MySQL删除操作其实是假删除
在 InnoDB 中,你的 delete 操作,并不会真的把数据删除,mysql 实际上只是给删除的数据打了个标记,标记为删除,因此你使用 delete 删除表中的数据,表文件在磁盘上所占空间不会变小 ...
- mysql使用命令访问数据库_mysql命令操作数据库
命令行创建数据库 CREATE DATABASE rst_xxh DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 显示所有库 show data ...
- mysql日期减7天_Mysql 时间操作(当天,昨天,7天,30天,半年,全年,季度)
1 . 查看当天日期 select current_date(); 2. 查看当天时间 select current_time(); 3.查看当天时间日期 select current_timesta ...
- mysql delete 级联删除_MySQL级联删除和更新
首先,目前在产品环境可用的MySQL版本(指4.0.x和4.1.x)中,只有InnoDB引擎才允许使用外键,所以,我们的数据表必须使用InnoDB引擎. 下面,我们先创建以下测试用数据库表: CREA ...
- mysql有没有批量游标_MySQL使用游标批量处理进行表操作_MySQL
一.概述 本章节介绍使用游标来批量进行表操作,包括批量添加索引.批量添加字段等.如果对存储过程.变量定义.预处理还不是很熟悉先阅读我前面写过的关于这三个概念的文章,只有先了解了这三个概念才能更好的理解 ...
- mysql sql语句 参数化_C#参数化执行SQL语句,防止破绽攻击本文以MySql为例【20151108非查询操作】_mysql...
C#参数化执行SQL语句,防止漏洞攻击本文以mysql为例[20151108非查询操作] 为什么要参数化执行SQL语句呢? 一个作用就是可以防止用户注入漏洞. 简单举个列子吧. 比如账号密码登入,如果 ...
最新文章
- 2022-2028年中国多肽药物市场研究及前瞻分析报告
- php开启path_info,Nginx + php-fpm 开启 PATH_INFO 模式
- 学python就业要看哪些书-编程0基础自学Python,踩完这些坑,我才成功就业!
- 先定个小目标, 使用C# 开发的千万级应用
- Nginx配置以及域名转发
- pil对图像加透明 python_使用Python图像处理库Pillow处理图像文件
- python-去重的三种方式-成员判断-索引判断-集合
- Struts2知识点总结
- session的removeAttribute()和invalidate()的区别
- Python3 CookBook | 数据结构和算法(一)
- 【大数据实战项目一】数据下载以及工具软件的使用
- [工具推荐] IPv4 和 IPv6 网站测速工具
- 450v10 uf电容坏了,用470v50uf替代好吗?
- 【深入浅出图像算法】图像处理算法入门好文
- U盘重装Win10系统教程
- 自我激励的有效方法20个(推荐)
- abort()has been called问题
- Android美化EditText
- css 设置body的最小高度是100%,满屏显示
- Sonic-Pi 初体验