临沂河东建设局网站,10m网站并发量,网站网页制作机构,网站透明flash一、触发器#xff08;操作日志表#xff09;
1.介绍
不需要主动调用的一种储存过程#xff0c;是一个能够完成特定过程#xff0c;存储在数据库服务器上的SQL片段。
对当前表中数据增删改查的一种记录日志表#xff0c;根据触发器自动执行#xff0c;记录当前…一、触发器操作日志表
1.介绍
不需要主动调用的一种储存过程是一个能够完成特定过程存储在数据库服务器上的SQL片段。
对当前表中数据增删改查的一种记录日志表根据触发器自动执行记录当前操作 2.触发器的使用
2.1 手动进行操作记录
1.创建日志表
代码实现
#创建日志表
create table stulogs(id int primary key auto_increment,#主键自增 autu_incrementtime timestamp,#操作类型的时间log_text varchar(200)#记录当前所做的具体操作
);
运行结果 2.向学生表中添加一条数据
代码实现
#向学生表中添加一条数据
insert into students (stu_num,name,stu_gender,stu_age,cid)
values(20220112,小丽,女,20,2
);
运行结果 3.手动进行日志的记录 新增记录
代码实现
insert into stulogs(time,log_text) values(now(),添加20222012学生信息);
运行结果 4.对表修改结果
students表 日志表stulogs 2.2 使用触发器自动进行操作记录
1.创建触发器 trigger
语法:关键字trigger
create trigger 触发器的名字
before|after #定义触发器的触发时机
新增insert|删除delete|修改update #定义数据操作语言DML类型
on 表名 #指定具体是哪张表
for each row #声明为行级触发器只要操作一条记录就能触发触发器执行一次
具体的触发器操作
案例
通过触发器的方式来进行日志记录
代码实现
#通过触发器的方式来进行日志记录
create trigger tri_test1
after insert on students
for each row #行级触发器
insert into stulogs(time,log_text)values(now(),concat(添加,new.stu_num,学生信息));
运行结果 2.查看触发器
show triggers;
代码实现
#查看触发器
show triggers;
运行结果 3.测试触发器
代码实现
#触发器自动执行
#新增数据操作
insert into students (stu_num,name,stu_gender,stu_age,cid)values(20220113,小美,女,21,1);
运行结果 对表修改结果 触发器日志表自动存储结果 4.删除触发器
语法
drop trigger 触发器名
代码实现
drop trigger stulogs;
运行结果 二、NEW与OLD
介绍
new与old关键字用来在触发器中获取出发这个触发器的数据库操纵语言DML的数据
new在触发器中获取insert操作添加的数据update操作修改后的记录
old在触发器中用于获取delete操作删除前的数据update操作修改前的数据 同时新增多条数据
代码实现
#同时新增多条数据
insert into students (stu_num,name,stu_gender,stu_age,cid)values(20220114,小小,男,18,1),(20220115,郭靖,男,20,2);
运行结果
对表修改结果
students表 log_text日志表 修改触发器 新增一个触发器记录修改操作
create trigger tir_test3
after update on students
for each row
insert into stulogs(time,log_text) values(now(),concat(修改学生信息为,new.stu_num,new.name)); 修改数据
update 表名 set 列名修改后的数据 where 条件
代码实现
#修改数据
update students set name大黄 where stu_num20220114;
运行结果 表数据修改结果 表数据修改
查看触发器
代码实现
#查看触发器
show triggers;
运行结果显示触发器记录 案例
修改数据并触发器记录
代码实现
#删除数据
delete from students where name大黄;#修改数据
update students set name蓝 where stu_num20220115;#添加删除触发器
create trigger tir_test4
after update on students
for each row
insert into stulogs(time,log_text) values(now(),concat(将学员姓名从【,old.name,】修改为【,new.name,】));运行结果 表数据修改结果 三、触发器使用总结