1.初识触发器:
应用场景(一):每当删除员工表中的一行时,都会在一个存档表emp_bak中备份一条。
应用场景(二):每当订购一个产品时,都会在库存数量中减去订购的数量。
应用场景(三):每当新增一个员工到表中时,都要检查其工作年限是否符合要求。
触发器场景使用特点:在某事件发生时(如:INSERT .UPDATE,DELETE),自动处理一件事情。
2.触发器的创建
Create Trigger [触发器名称] [AFTER|BEFORE] [INSERT|UPDATE|DELETE] on [表名] for each row [需要自动处理的sql]
3.场景实战:
使用触发器实现场景一:
先创建一个表结构一样的备份表
触发器sql:
create trigger empDelBak after DELETE on emp for each row
BEGIN
insert into emp_bak(empno,ename,job,mgr,hiredate,sal,comm,deptno)VALUES
(OLD.empno,OLD.ename,OLD.job,OLD.mgr,OLD.hiredate,OLD.sal,OLD.comm,OLD.deptno);
end;
测试效果:删除emp一条数据,发现emp_bak中保存了删除的记录
2.场景三模拟测试