烟台品牌网站建设,企业所得税优惠政策最新2023规定,windows2008 iis网站 指定域名,江阴做网站目录
表结构准备
插入数据触发器
代码
测试
修改数据触发器
代码
测试
删除数据触发器
代码
测试 通过触发器记录 tb_user 表的数据变更日志#xff0c;将变更日志插入到日志表user_logs中#xff0c;包含增加#xff0c;修改#xff0c;删除。 表结构准备
根据…目录
表结构准备
插入数据触发器
代码
测试
修改数据触发器
代码
测试
删除数据触发器
代码
测试 通过触发器记录 tb_user 表的数据变更日志将变更日志插入到日志表user_logs中包含增加修改删除。 表结构准备
根据日志表的需求写出对应的表结构即可。
-- 准备工作 : 日志表 user_logscreate table user_logs(id int(11) not null auto_increment,operation varchar(20) not null comment 操作类型, insert/update/delete,operate_time datetime not null comment 操作时间,operate_id int(11) not null comment 操作的ID,operate_params varchar(500) comment 操作参数,primary key(id)
)engineinnodb default charsetutf8;插入数据触发器
代码
写触发器时多注意插入的数据与日志表的结构相对应NEW表示将要或者已经新增的数据。
create trigger tb_user_insert_trigger -- 触发器命名
after insert on tb_user for each row -- 插入型的触发器数据取自after
begininsert into user_logs(id, operation, operate_time, operate_id, operate_params)VALUES(null, insert, now(), NEW.id, -- NEW表示将要或者已经新增的数据这里只需要取其idconcat -- 拼接字符串,从NEW中取各自需要的信息(插入的数据内容为:id,NEW.id,,name,NEW.name,,phone,NEW.phone,,email, NEW.email, ,profession, NEW.profession));end;测试
检查日志表中的数据是否可以正常插入以及插入数据的正确性。
-- 查看
show triggers ;-- 插入数据到tb_user
insert into tb_user(id, name, phone, email, profession, age, gender, status,createtime)
VALUES (26,三皇子,18809091212,erhuangzi163.com,软件工程,23,1,1,now());修改数据触发器
代码
在修改数据触发器中OLD 表示修改之前的数据 , NEW 表示将要或已经修改后的数据。
create trigger tb_user_update_trigger
after update on tb_user for each row
begininsert into user_logs(id, operation, operate_time, operate_id, operate_params)VALUES(null, update, now(), new.id,concat(更新之前的数据: id,OLD.id,,name,OLD.name, , phone,OLD.phone, , email, OLD.email, , profession, OLD.profession, | 更新之后的数据: id,NEW.id,,name,NEW.name, , phone,NEW.phone, , email, NEW.email, , profession, NEW.profession));end;测试
-- 查看
show triggers ;-- 更新
update tb_user set profession 会计 where id 23;
update tb_user set profession 会计 where id 5; 删除数据触发器
代码
删除数据触发器中OLD 表示将要或者已经删除的数据。
create trigger tb_user_delete_trigger
after delete on tb_user for each row
begininsert into user_logs(id, operation, operate_time, operate_id, operate_params)VALUES(null, delete, now(), OLD.id,concat(删除之前的数据: id,OLD.id,,name,OLD.name, , phone,OLD.phone, ,email, OLD.email, , profession, OLD.profession));end;测试
-- 查看
show triggers ;-- 删除数据
delete from tb_user where id 26; END 学习自黑马程序员——MySQL数据库课程