触发器

01 触发器
在满足对某张表数据的增、删、改的情况下,自动触发的功能称之为触发器

02 为何要用触发器?
触发器专门针对我们对某一张表数据增insert、删delete、改update的行为,这类行为一旦执行
就会触发触发器的执行,即自动运行另外一段sql代码

03 创建触发器语法
# 针对插入
create trigger tri_after_insert_t1 after insert on 表名 for each row
begin
sql代码。。。
end

create trigger tri_after_insert_t2 before insert on 表名 for each row
begin
sql代码。。。
end


# 针对删除
create trigger tri_after_delete_t1 after delete on 表名 for each row
begin
sql代码。。。
end

create trigger tri_after_delete_t2 before delete on 表名 for each row
begin
sql代码。。。
end


# 针对修改
create trigger tri_after_update_t1 after update on 表名 for each row
begin
sql代码。。。
end

create trigger tri_after_update_t2 before update on 表名 for each row
begin
sql代码。。。
end

04 案例
CREATE TABLE cmd (
id INT PRIMARY KEY auto_increment,
USER CHAR (32),
priv CHAR (10),
cmd CHAR (64),
sub_time datetime, #提交时间
success enum ('yes', 'no') #0代表执行失败
);

CREATE TABLE errlog (
id INT PRIMARY KEY auto_increment,
err_cmd CHAR (64),
err_time datetime
);

delimiter $$
create trigger tri_after_insert_cmd after insert on cmd for each row
begin
if NEW.success = 'no' then
insert into errlog(err_cmd,err_time) values(NEW.cmd,NEW.sub_time);
end if;
end $$
delimiter ;


drop trigger tri_after_insert_cmd;




posted @ 2018-09-23 22:38  不沉之月  阅读(190)  评论(0编辑  收藏  举报