博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MYSQL对外键的约束要求
阅读量:6941 次
发布时间:2019-06-27

本文共 976 字,大约阅读时间需要 3 分钟。

hot3.png

170156_BQ3t_1582989.jpg

175319_CBxa_1582989.jpg

foreign key(a) references table_name(b) on update cascade on delete cascade

on update cascade 是级联更新的意思on delete cascade 是级联删除的意思意思是当你更新或删除主键表时,那么外键表也会跟随一起更新或删除

外键的定义语法:

[CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, ...)

    REFERENCES tbl_name (index_col_name, ...)

    [ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]

    [ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]

    该语法可以在 CREATE TABLE ALTER TABLE 时使用,如果不指定CONSTRAINT symbolMYSQL会自动生成一个名字。

    ON DELETE、ON UPDATE表示事件触发限制,可设参数:

RESTRICT(限制外表中的外键改动,默认值)

CASCADE(跟随外键改动)

SET NULL(设空值)

SET DEFAULT(设默认值)

NO ACTION(无动作,默认的,SQL的标准关键字与RESTRICT相同)

外键约束对父表的含义:

    在父表上进行update/delete以更新或删除在子表中有一条或多条对应匹配行的候选键时,父表的行为取决于:在定义子表的外键时候所指定的on update/on delete子句参数。

关键字

含义

CASCADE

删除包含与已删除键值有参照关系的所有记录

SET NULL

修改包含与已删除键值有参照关系的所有记录,使用NULL值替换(只能用于子表当中未标记为NOT NULL的字段)

RESTRICT

拒绝删除要求,直到使用删除键值的辅助子表已经被手工删除,并且没有参照时(这是默认设置,也是最安全的设置)

NO ACTION

啥也不做

转载于:https://my.oschina.net/ajian2014/blog/324035

你可能感兴趣的文章
服务器卡死,重启报错: INFO: task blocked for more than 120 seconds
查看>>
联动下拉菜单应用
查看>>
abbyy在使用时提示更改分辨率如何处理
查看>>
Leecode 70 爬楼梯
查看>>
vagrant教程
查看>>
什么是SMART原则?
查看>>
js实现table内 某列的内容进行即时筛选
查看>>
iOS.Crash.OniOS8.WhenCall[popToRootViewController]
查看>>
【转】像素 Pixel (Picture Element)
查看>>
堆排序(java实现)
查看>>
ubuntu server 安装vnc
查看>>
win7关闭关机时的自动终止的功能
查看>>
调试K3网页版需要注意的问题
查看>>
前端开发中的一些用户体验细节
查看>>
第二章:身份验证
查看>>
开发基础(练习题)
查看>>
常用的HTTP响应头
查看>>
PYTHON2.day06
查看>>
http 响应码
查看>>
查找并绘制轮廓[OpenCV 笔记XX]
查看>>