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; -- 父表删除, 子表置空
更新父表主键
删除父表记录
外键要增加成功的前提条件
子表的外键字段的数据类型必须与父表的主键的字段类型要一致
如果想要在父表进行数据删除的时候, 子表对应的模式为置空: set null,前提是子表对应的外键字段允许为空
如果是在表创建之后增加外键: 一定要考虑表中的数据是否满足外键条件
MySQL(列表、list、全)mysqllist
http://www.zh-cjh.com/wenzhangguilei/2503.html
文章归类、所有文章列表、LISTLIST
http://www.zh-cjh.com/wangzhangonggao/2195.html
2、本资源基本为原创,部分来源其他付费资源平台或互联网收集,如有侵权请联系及时处理。
3、本站大部分文章的截图来源实验测试环境,请不要在生产环境中随意模仿,以免带来灾难性后果。
转载请保留出处: www.zh-cjh.com珠海陈坚浩博客 » 17.5 MySQL:外键(约束模式)
作者: cjh
手机扫一扫,手机上查看此文章: |
一切源于价值!
其他 模板文件不存在: ./template/plugins/comment/pc/index.htm