触发程序类似于事件监听器,当用于对表进行增删改的时候自动激活
- 表A增加后,表B记录表A操作之前的值,用于操作日志
- 表A删出后,删除表B的记录,比如删除一个部门,则部门里面的员工全部要删掉
create trigger 触发程序名 {before|after}
{insert| update| delete} on 表名 for each row 触发程序sql语句
delimiter //
# 每次往stu表中插入数据,更改num_stu的学生人数
create table num_stu (num int)
create trigger tri_stu
after insert
on stu
for each row
update num_stu set num=num+1
#创建emp表,输入雇员工资,如果工资少于5000,自动设置成5000
# old new 关键字代码触发程序的行
create table emp (sal decimal(7,2),empname varchar(20));
create trigger tri_sal
before insert
on emp
for each row
begin
if new.sal<5000 then set new.sal=5000
end if
end
#查看触发程序
show triggers [from db_name] [like xxx]
#删除触发程序
drop {database|schema} [if exists] trigger_name
网友评论