前端技术 手机教程
程序开发 平面动画
系统软件 CMS教程
CMS教程 在线手册
资源下载 网络安全
精准搜索请尝试:精确搜索

MySQL外键约束On Update和On Delete的使用说明

2021-01-26 20:15:54 来源:原创 作者:寂静的神经

On Update和On Delete是SQL语言的一个标准,用于数据库外键定义,设置当主键表中的被参考列的数据发生变化时,外键表中响应字段的变换规则。

On Update表示主键表中被参考字段的值被更新时,On Delete表示主键表中被参考字段的值被删除时。

语法:


foreign key (foreign_key_id) references table(primary_key_id) on update/delete parameter

其中parameter有no action , set null , set default ,cascade四个选项,分别表示:

1.no action 表示 不做任何操作,

2.set null 表示在外键表中将相应字段设置为null

3.set default 表示设置为默认值

4.cascade 表示级联操作,就是说,如果主键表中被参考字段更新,外键表中也更新,主键表中的记录被删除,外键表中改行也相应删除。

级联更新时,依据的是之前匹配的数据,在主表更新关联的外键字段的值后,系统自动更新从表的相应外键字段的值,而不是其他未设置为主外键关联的字段,不是主外键关联的字段不受影响。

示例:


create table a
(
  id varchar(20) primary key,
  password varchar(20) not null
)

create table b
(
 id int identity(1,1)  primary key,
 name varchar(50) not null,
 pid varchar(20),
 foreign key (pid) references a(id) on delete cascade
)

表a:

id password
20200001 123456
20200002 654321

表b:

id name pid
1 零五科技 20200001
2 www.02405.com 20200001
3 http://www.02405.com 20200002

执行删除语句:


delete a where id='20200001'

表a:

id password
20200002 654321

表b:

id name pid
3 http://www.02405.com 20200002

当我们删除表a内id为‘20200001’的数据,发现表b内pid 为“20200001”的两条数据也被数据库自动删除了,这就是级联删除

本文关键词:update on delete

相关文章

零五网,分享IT知识,国内顶级IT知识门户网站。

Copyright (C) www.02405.com, All Rights Reserved.

零五网 版权所有 辽ICP备13002105号-1