17.5 MySQL:外键(约束模式)

17.5 MySQL:外键(约束模式)

 

外键约束

所谓外键约束:就是指外键的作用

之前所讲的外键作用:是默认的作用;其实可以通过对外键的需求,进行定制操作

外键约束有三种约束模式:都是针对父表的约束

      District:严格模式(默认),父表不能删除或者更新一个已经被子表数据引用的记录

      Cascade:级联模式:父表的操作,对应子表关联的数据也跟着被删除

      Setnull:置空模式:父表的操作之后,子表对应的数据(外键字段)被置空

通常的一个合理的做法(约束模式):删除的时候子表置空,更新的时候子表级联操作指定模式的语法

Foreign key(外键字段)references 父表(主键字段)on delete 模式 on update 模式;

删除置空的前提条件:外键字段允许为空(如果不满足条件,外键无法创建)

 

 

外键约束: 可以通过在建立外键的时候, 对外键进行约束控制.

约束控制有三种模式

严格模式: district(默认的)

置空模式: set null,对子表的限制: 当父表删除一个被子表引用的记录的时候,会自动的将子表中对应的父表引用(外键)设置成NULL

级联模式: cascade, 级联操作: 当父表对一个被子表引用的数据进行操作的时候,会自动的连带更新子表对应的数据.(更新操作)

 

模式设定语法: 在外键增加之后(foreign key(外键字段) references 父表(主键)),增加on关键字, 指定操作方式和约束模式. 一个常用的约束模式如下

on update cascade -- 级联操作: 父表更新,子表跟着变

on delete set null; -- 父表删除, 子表置空

1.png

更新父表主键

1.png

删除父表记录

2.png

外键要增加成功的前提条件

子表的外键字段的数据类型必须与父表的主键的字段类型要一致

如果想要在父表进行数据删除的时候, 子表对应的模式为置空: set null,前提是子表对应的外键字段允许为空

如果是在表创建之后增加外键: 一定要考虑表中的数据是否满足外键条件


MySQL(列表、list、全)mysqllist
http://www.zh-cjh.com/wenzhangguilei/2503.html
文章归类、所有文章列表、LISTLIST
http://www.zh-cjh.com/wangzhangonggao/2195.html

1、本站资源长期持续更新。
2、本资源基本为原创,部分来源其他付费资源平台或互联网收集,如有侵权请联系及时处理。
3、本站大部分文章的截图来源实验测试环境,请不要在生产环境中随意模仿,以免带来灾难性后果。

转载请保留出处:  www.zh-cjh.com珠海陈坚浩博客 » 17.5 MySQL:外键(约束模式)

作者: cjh


手机扫一扫,手机上查看此文章:

一切源于价值!

其他 模板文件不存在: ./template/plugins/comment/pc/index.htm

未雨绸缪、居安思危!

数据安全、有备无患!

注意操作、数据无价!

一切源于价值!