本文仅仅为了加强个人记忆,如果要学习建议点击链接去原文学习,参考学习文章:

原文链接:https://blog.csdn.net/YRB20/article/details/117999665

 

触发器:

注意上述格式中的on,触发器是作用在相应的表上,要设定自己所需要的表; 

示例写法:

 与创建存储过程相同,都是要使用:

delimiter$$

delimiter;

这种格式;

其中begin

...

end$$表示除法后执行语法;

 里面有一些要注意的地方,比如这个new与old,是表示插入的数据,与原来在这个位置的数据;

 

 

跟着试验走:

1.

 创建一张这个表:

create table record(
序号 int(6) not null primary key auto_increment,
用户名 varchar(20),
操作类型 varchar(4),
原内容 varchar(20),
新内容 varchar(20),
时间 datetime
);

 

2.

 下面是这个触发器的代码:

delimiter $$
drop trigger if exists xs_insert;
create trigger xs_insert before insert
on xs for each row
begin
set @user = user();
set @operator_type = '插入';
set @old_content = 'null';
set @new_content = concat(new.学号,new.姓名);
set @time = now();
insert into record values(null,@user,@operator_type,@old_content,@new_content,@time);
end $$
delimiter ;

 

 

使用上面的代码可以,但是下面是自己写的也不知道哪里出bug删除的时候显示不行,可能是变量设置的问题吧,记好上面的样式就行;

注意:new里面的字符因为在使用concat中所有不能用平时的字符''来进行引用,要使用反引号包围列名,不然在函数内会报错;