E5 触发器的定义和应用

一、实验目的:

熟练使用MySQL触发器的定义和应用。

二、实验要求:

1、基本硬件配置:英特尔Pentium III 以上,大于4G内存;

2、软件要求:Mysql;

3、时间:1小时;

4、撰写实验报告并按时提交。

三、实验内容:

问题1创建触发器:当从emp表中删除一些记录时,将删除的记录写入员工历史表(首先创建历史表)。

Use example;

drop table if exists emp_his;

CREATE TABLE emp_his AS SELECT * FROM EEMP WHERE 1=2;      /*建一张空表*/

Delimiter // 
CREATE  TRIGGER tr_del_emp 
   after DELETE  
   ON  eemp 
   FOR EACH ROW    
BEGIN
INSERT INTO emp_his(deptno , empno, ename , job ,mgr , sal , comm , hiredate )

       VALUES( old.deptno, old.empno, old.ename , old.job,old.mgr, old.sal, old.comm, old.hiredate);

END

//

Delimiter ;

添加删除触发器

DELETE FROM eemp WHERE empno=2;

(在关闭外键约束的前提下)

验证删除之后写入emp_his的功能

问题2设计一个行触发器:当DEPT表中deptno列的值被更新时,EMP表中相应的deptno值也被修改。

验证更新触发器的功能

原先的表格

更新dept表中的deptno列的值

执行之后可见成功了,原本的deptno从1变成了6

问题3设计一个行触发器用于emp表的更新,当修改员工的工资sal时候触发更新所在部门的工资总和。

首先在dept表中添加一个sumsalary coulmn

行触发器用于emp表的更新

验证两表同时更新工资的功能

更新成功

问题4创建触发器:当emp表中删除或插入一些记录时,将每个员工所在部门的最新人数写入dept表。

首先向dept表添加一个person coulmn

添加删除更新触发器

验证删除记录更新部门人数的功能

添加添加更新触发器

验证添加记录更新部门人数的功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心刍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值