mysql触发器更新级联删除_用触发器来实现级联更新级联删除
/*用触发器来实现级联更新级联删除*/
--创建学生表,课程表,学生课程表
--http://www.yaosansi.com/post/692.html
范本:
触发器方式:
create trigger trg_A
on A
for update,delete
as
begin
if exists(select 1 from inserted)
update B set Name=(select Name from inserted) where Name=(select Name from deleted)
else
delete B where Name=(select Name from deleted)
end
go
下面是一个实例:
CREATE TABLE [dbo].[学生表](
[studentid] [nvarchar](50) primary key NOT NULL,
[name] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
)
CREATE TABLE [d
/*用触发器来实现级联更新级联删除*/
--创建学生表,课程表,学生课程表
--http://www.yaosansi.com/post/692.html
范本:
触发器方式:
createtrigger trg_A
onA
forupdate,delete
as
begin
ifexists(select 1 from inserted)
updateB set Name=(select Name from inserted) where Name=(select Name from deleted)
else
deleteB where Name=(select Name from deleted)
end
go
下面是一个实例:
CREATETABLE [dbo].[学生表](
[studentid] [nvarchar](50) primary key NOT NULL,
[name] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
)
CREATETABLE [dbo].[课程表](
[courseid] [nvarchar](50) primary key NOT NULL,
[name] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
)
CREATETABLE [dbo].[学生课程表](
[studentid] [nvarchar](50) NOT NULL ,
[courseid] [nvarchar](50) NOT NULL ,
[grade] [nvarchar](50) NULL,
primary key(studentid,courseid),
)
--删除表:
droptable学生表;
droptable课程表;
droptable学生课程表;
insertinto学生表values('001','张三');
insertinto学生表values('002','李四');
insertinto课程表values('101','语文');
insertinto课程表values('102','数学');
insertinto学生课程表values('001','101','63');
insertinto学生课程表values('001','102','50');
insertinto学生课程表values('002','101','73');
insertinto学生课程表values('002','102','70');
--创建一个触发器来实现级联更新级联删除
createtrigger trg_A
on 学生表
forupdate,delete
as
begin
ifexists(select 1 from inserted)
update 学生课程表setstudentid=(select studentid from inserted) where studentid=(select studentid from deleted)
else
delete 学生课程表wherestudentid=(select studentid from deleted)
end
go
--删除操作:
deletefrom学生表wherestudentid='001'
--更新操作
update 学生表setstudentid='0001' where studentid='001'
--查询:
select* from学生表orderby studentid ;
select* from课程表orderby courseid ;
select* from学生课程表orderby studentid, courseid;
mysql触发器更新级联删除_用触发器来实现级联更新级联删除相关推荐
- 华为nova4e能更新鸿蒙吗,华为nova4e禁止系统更新的方法_怎么关闭和禁用系统更新功能...
下面也还是来说说部分机友在用这个华为nova4e手机的时候会提到的一个问题,那就是不想让手机进行更新,因为有的机友觉得现在的系统用着挺好的,不想操作系统的更新,想把手机的更新功能暂时关闭了,那这个怎么 ...
- java tree类子项的添加和删除_使用Java实现二叉树的添加,删除,获取以及遍历...
二叉树节点的声明: static final class Entry>{ //保存的数据 private T item; //左子树 private Entry left; //右子树 priv ...
- confluence 删除_知识管理平台Confluence教程:如何删除或还原页面?
Confluence作为一个知识管理的平台,让团队成员协作.分享信息,查找工作所需的资料,从此打破不同团队.不同部门以及个人之间信息孤岛的僵局,Confluence真正实现了组织资源共享.同时Conf ...
- mysql中触发器有什么作用_数据库触发器有什么作用?
展开全部 触发器的作用: 自动计算数据值,如果数据的值达到了一定的要求,则进行特32313133353236313431303231363533e78988e69d8331333431363034定的 ...
- mysql批量更新查询结果_数据库批量查询结果作为更新的值
数据库批量更新. 业务需求: 需要将a表中 type为1 的数据的source_id更新为新的id. 因为之前的id是存储在p_server中,现在更新到了server_info表中 update a ...
- python数据库更新消息提醒_用Python实现校园通知更新提醒功能
前言 这个项目实已经在一个月前已经完成了,一直都想写一篇博客来总结这个过程中遇到的一些问题.但最近一个月来都比较忙,所以一直拖到了现在. 首先说说起因吧,我没事的时候,总喜欢依次点开学校主页.教务处. ...
- mysql级联删除_近百道MySQL面试题和答案(2020收藏版)(完结篇)
7. 什么是死锁?怎么解决? 死锁是指两个或多个事务在同一资源上相互占用,并请求锁定对方的资源,从而导致恶性循环的现象. 常见的解决死锁的方法 1.如果不同程序会并发存取多个表,尽量约定以相同的顺序访 ...
- mysql数据库级联删除_怎样对数据库进行级联删除?
众所周知,数据库软件有级联删除和更新的功能.所谓级联删除和更新是说,如果两个表之间使用了主键与外键的关系约束,当对主键表的记录进行更新或者删除操作时,如果是更新,则自动将外键表的记录自动更新,如果是删 ...
- mysql触发器删除同步_MySQL 触发器例子(两张表同步增加和删除)
以下两个例子来自: http://www.cnblogs.com/nicholas_f/archive/2009/09/22/1572050.html 实测有效,但是原帖的分隔符不正确,因此稍作修改. ...
最新文章
- MySQL数据库中的MyISAM和InnoDB存储引擎对比
- Linux后台开发应该具备技能
- java juc包多线程编程案例:Executor入门示例
- 可能存在无限递归_你为什么学不会递归?读完这篇文章轻松理解递归算法
- tensorflow学习笔记1
- Redis ZSet 的几种使用场景
- Redis复制与可扩展集群搭建
- http 协议入门
- linux该专接本还是工作_先专接本还是先工作?
- php接口前端,php 接口与前端数据交互实现示例代码
- vi删除选中内容_vi 删除指令的使用
- LPC1768PWM实验
- 评价模型——目标权重的确定
- excel锁定单元格不能修改_EXCEL/WPS如何保护特定的数据不被更改?
- 企业怎样顺利实施ERP管理系统?
- Chrome开发自定义右键菜单实现快速跳转到指定页面
- 索引是什么,怎么确定索引
- 稀疏数组真心话大冒险
- 赠书:HTML5 Canvas 2d 编程必读的两本经典
- ESP8266和双向可控硅在调速调光中的应用