mysql触发器的使用

课程名称

MySQL数据库技术

实验

成绩

 

 

实验名称

实验八:触发器的使用

 

 

学号

 

姓名

 

班级

 

日期

 

 

实验目的:

掌握触发器的概念及其使用。

实验平台:

MySQL+SQLyog;

实验内容与步骤:

以下操作均在YGGL数据库中进行。

1. 创建触发器,在Employees表中删除员工信息的同时,将salary表中该员工的信息删除,并写出激活该触发器的语句。

 

2. 假设Departments2表和Departments表的结构和内容相同,在Departments上创建一个触发器,如果添加一个新的部门,该部门也会添加到Departments2表中,并写出激活该触发器的语句。

 

3. 当修改表Employees时,若将Employees表中员工的工作时间增加1年,则将收入增加500元,增加2年则增加1000元,依次增加,若工作时间减少则无变化。并写出激活该触发器的语句。

 

4. 创建update触发器,当Departments表中部门号发生变化时,Employees表中员工所属的部门号也将改变,并写出激活该触发器的语句。

 

5. 创建update触发器,当Salary表中的InCome值增加500时,OutCome值则增加50,并写出激活该触发器的语句。

 

实验总结(结论或问题分析):
 
use yggl;
delimiter $$
create trigger s_delet after delete
  on `salary` for each row
begin
  delete from  `employees` where  编号=old.编号;
end$$
delimiter ;
delete from `salary` where 编号='000008';
select * from `employees`;
create table departments2 select * from departments ;
 
delimiter $$
create trigger d_insert after insert
  on departments for each row
begin
  insert into departments2 values(new.部门号,new.部门名称);
 
end$$
delimiter ;
 insert into departments values(8,'人事部');
 select*from departments2;
delimiter $$
create trigger u_pdate after update
   on departments for each row
begin 
   update employees 
set 部门号=new.部门号
where 部门号=old.部门号; 
end $$
delimiter ;
update departments 
set 部门号=0
where 部门名称='法务部'
select * from departments; 
 
select *from departments;
delimiter $$
create trigger u_ate before update
   on employees  for each row
begin 
  if new.工作时间-old.工作时间=1 then
     UPDATE salary
     set 收入=收入+500
     where 编号=old.编号;
     end if;
end $$
delimiter ;
 update employees
 set 工作时间=工作时间+3
 where 编号='000001';
 select * from employees;
 
delimiter $$
create trigger u_date before update
   on salary for each row
begin 
  if new.收入-old.收入=500 then
     UPDATE salary
     set 支出=支出+50
     where 编号=old.编号;
     end if;
end $$
delimiter ;
update salary 
set  收入=收入+1000
where 编号='000001';
select *from salary;

你可能感兴趣的:(mysql)