1.只有InnoDB引擎才允许使用外键,所以,我们的数据表必须使用InnoDB引擎。

2.注意:

1、必须使用InnoDB引擎;

2、外键必须建立索引(INDEX);

3、外键绑定关系这里使用了“ ON DELETE CASCADE”,意思是如果外键对应数据被删除,将关联数据完全删除,

3.更新的操作也类似,因为我们在前面建表的时候已经定义外键删除、更新操作都是CASCADE,所以在这里可以直接测试数据。

4.用外键对多个相关联的表做同时删除、更新的操作,从而保证了数据的一致性。

. 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不能识别,不知道是什么意思...

[原创]MYSQL中利用外键实现级联删除和更新

MySQL中利用外键实现级联删除.更新 MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引.在创建索引的时候,可以指定 ...

MySQL外键之级联

简介 MySQL外键起到约束作用,在数据库层面保证数据的完整性.例如使用外键的CASCADE类型,当子表(例如user_info)关联父表(例如user)时,父表更新或删除时,子表会更新或删除记录,这 ...

MySql 外键约束 之CASCADE、SET NULL、RESTRICT、NO ACTION分析和作用

MySQL有两种常用的引擎类型:MyISAM和InnoDB.目前只有InnoDB引擎类型支持外键约束.InnoDB中外键约束定义的语法如下: ALTER TABLE tbl_name ADD [CON ...

MySQL中利用外键实现级联删除、更新

MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引.在创建索引的时候,可以指定在删除.更新父表时,对子表进行的相应操作 ...

mysql外键级联更新删除

MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引.在创建索引的时候,可以指定在删除.更新父表时,对子表进行的相应操作 ...

1、Mysql无法创建外键的原因 2、MySql 外键约束 之CASCADE、SET NULL、RESTRICT、NO ACTION分析和作用

在Mysql中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因. 1.  两个字段的类型或者大小不严格匹配.例如,如果一个 ...

总结: MySQL(基础,字段约束,索引,外键,存储过程,事务)操作语法

1. 显示数据库列表 show databases; # 查看当前所有数据库 show databases \G   #以行的方式显示 2. 在命令行中,执行sql语句 mysql -e 'show ...

MySQL|RESTRICT|NO ACTION|CASCADE| SET NULL四种外键约束

外键约束比较多得两种情况: 1.父表更新时子表也更新,父表删除时如果子表有匹配的项,删除失败: ON UPDATE CASCADE ON DELETE RESTRICT 1 2.父表更新时子表也更新, ...

MySQL的外键约束:Cascade/Restrict/No action/SET NULL :级联操作

转自:http://blog.csdn.net/cnjsnt_s/article/details/5548280 具体使用时需要参考:http://blog.csdn.net/codeforme/ar ...

随机推荐

深入seajs源码系列二

模块类和状态类 参照上文的demo,我们结合源码分析在简单的API调用的背后,到底使用了什么技巧来实现各个模块的依赖加载以及模块API的导出. 首先定义了一个Module类,对应与一个模块 funct ...

C#基础知识系列七(base、this、new、override、abstract、virtual、static)

前言 本文主要来讲解一下C#中,自己觉得掌握的不怎么样或者用的不多,不太熟悉的关键字,主要包括base.this.new.override.abstract.virtual以及针对static字段和s ...

SpringMVC 和Struts2的区别

SpringMVC 和Struts2的区别 1. 机制: spring mvc的入口是servlet,而struts2是filter,这样就导致了二者的机制不同. 2. 性能: spring会稍微比s ...

浅谈 举家搬迁静态文件到CDN

由于七牛CDN最近做活动,对于标准用户可以免费使用如下优惠 10 GB 存储空间 10 G/月 下载流量 10 万次/月 PUT/DELETE 请求 100 万次/月 GET 请求 以上这些指标直接就 ...

OpenStack集成Docker

声明:绝对原创,欢迎转载,但请标明出处,谢谢! 最近在做openstack与Docker的集成工作,走了不少弯路,遇到不少问题,不过最终搭建成功了.现在将过程分享出来,以供参考. 一.环境介绍 1.软 ...

Android CardView设置成普通的Framelayout

比如可以这样写代码,CardView就变成普通的FrameLayout: <?xml version="1.0" encoding="utf-8"?&gt ...

Java进阶(七)正确理解Thread Local的原理与适用场景

原创文章,始自发作者个人博客,转载请务必将下面这段话置于文章开头处(保留超链接). 本文转发自技术世界,原文链接 http://www.jasongj.com/java/threadlocal/ Th ...

初始CSS3

初始CSS31.1.什么是CSSCSS全程为层叠样式表(Cascading Style Sheet),通常又称为风格样式表(Style Sheet)它是用来进行网页风格设计的.1.CSS在网页中的应用 ...

Centos 基本命令不能用恢复方法

遇到命令都不能用,直接执行下面的语句就可以: export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/roo ...

Philosopher’s Walk(递归)

In Programming Land, there are several pathways called Philosopher’s Walks for philosophers to have ...

mysql innodb 外键_只有innoDB才允许使用外键相关推荐

  1. 数据库mysql表怎么设置外键_如何设置数据库中的外键

    展开全部 创建数据库时就是有主键的创建了主键,但是表之间的关系没有联系,要建数据库关系图只e69da5e887aa62616964757a686964616f31333365653739有主键没有外键 ...

  2. java 并发 主键_高并发数据库自增主键分析

    在一般情况下,在新增领域对象后,都需要获取对应的主键值.使用应用层来维护主键,在一定程度上有利于程序性能的优化和应用移植性的提高.在采用数据库自增主键的方案里,如果JDBC驱动不能绑定新增记录对应的主 ...

  3. mysql的缓冲池大小_配置InnoDB缓冲池(Buffer Pool)大小

    1.配置InnoDB缓冲池(Buffer Pool)大小 当服务器正运行时,用户可以离线(启动时)或在线配置InnoDB缓冲池大小.这部分描述的行为适用这两种方法. 当增加或减少innodb_buff ...

  4. mysql 联结主键_联结表中的复合主键 - Sequelize

    使用Sequelize和MySQL数据库,我试图在联结表中实现复合主键组合,但遗憾的是没有结果 . 我有 table : 它们与许多人有很多关系 . 在联结表user_has_project中,我想要 ...

  5. winform keydown 等待按下另外一个键_真是没想到,手机电源键还有4个隐藏技巧,今天算是学到了...

    手机电源键真的只能开关手机屏幕吗?难道没有其他作用吗? 其实我们手机电源键还有4个妙用,学会了让你的手机更好用. 下面就来具体说说手机电源键的妙用! 1.手机电源键加+音量键 很多小伙伴不是很习惯用悬 ...

  6. java外循环控制_如何跳出内循环执行外循环?

    import java.util.Scanner; public class TestDemo { //主菜单选择显示项 public void showMainChioce() { System.o ...

  7. mysql学习笔记 ----外键.myisam和innodb的区别

    外键:InnoDB支持外键. 若要设置外键,则参照表和被参照表都必须对相应字段设置索引.设置完索引便可 设置外键.可以在定义外键的时候,在最后加入这样的关键字: ON UPDATE CASCADE; ...

  8. mysql 外键_为什么大多数互联网公司不用外键约束

    是否使用外键约束 [强制]不得使用外键与级联,一切外键概念必须在应用层解决.-<阿里Java规范> 首先外键(Foreign Key)是什么东西 使用方案 假设有一个score表 id是自 ...

  9. mysql innodb 数据复制_快速将InnoDB表复制到另一个实例

    此过程演示如何将常规InnoDB表从正在运行的MySQL服务器实例复制 到另一个正在运行的实例.可以使用具有微小调整的相同过程在同一实例上执行完整表还原. 在源实例上,创建一个表(如果不存在): my ...

最新文章

  1. java 压缩文件tar_使用Java API进行tar.gz文件及文件夹压缩解压缩
  2. dhcp协议_DHCP(动态主机分配协议)原理
  3. DAY3 购物车程序
  4. 4、elasticsearch安装head插件
  5. 三菱PLC编程软件 GX Developer 8.86 中文版的下载与安装 (win 7 64位)
  6. 复杂网络中聚类算法总结
  7. 截止失真放大电路_音频放大器结构组成_音频放大器分类
  8. Redis 单线程却能支撑高并发
  9. MIUI12系统简单卡刷开发版获取Root超级权限的步骤
  10. 嵌入式:ARM相关开发工具概述
  11. Python实现MATLAB bi2de函数
  12. 3,用CMD命令打开QQ及微信....常用软件
  13. ---- 招聘之操作系统原理 ----
  14. 五折交叉验证/K折交叉验证, python代码到底怎么写
  15. c程序语言是什么意思,C语言,程序是什么意思?
  16. Matlab使用regress函数进行回归分析
  17. Edge-SLAM论文翻译
  18. 2020阿里实习生招聘笔试题
  19. 2020职高计算机录取分数线,四川邮电职校2020单招录取分数线
  20. 中职网络空间安全windows渗透

热门文章

  1. execute immediate 用法
  2. 1型错误和2型错误_W.1 仿真错误定位:gjob exits with status * ?
  3. RockChip MPP编码
  4. nRF2401A无线传输模块介绍
  5. 关于ChatGPT这些“智商税”要注意
  6. MyBatis (五)—— 延迟加载
  7. div+css网页设计例子
  8. C++文件流std::ifstream的使用
  9. SqlServer2008实例25 代理键
  10. 居中到底有多少种方法