触发器是与表有关的数据库对象,指再insert/update/delete之前或之后,触发并执行触发器中定义的SQL语句集合,触发器的这种特性可以协助应用在数据库端确保数据的完整性,日志记录,数据校验等操作。
使用别名OLD和NEW来引用触发器中发生变化的记录内容,这与其他的数据库是相似的,现在触发器只支持行级触发,不支持语句级触发。
| 触发器类型 | NEW和OLD |
| insert型触发器 | NEW表示将要或者已经新增的数据 |
| update型触发器 | OLD表示修改之前的数据,NEW表示将要或已经修改后的数据 |
| delete型触发器 | OLD表示将要或者已经删除的数据 |
一、语法
1、创建
create trigger trigger_name(触发器名)
before/after insert/update/delete
on 表名 for each row
begin
trigger_stmt;
end;
2、查看
show trigger;
3、删除
drop trigger [数据库名]触发器名;如果没有指定数据库名,默认为当前数据库
二、案例:
1、insert
创建
create trigger tb_user_insert_trigger
after insert on tb_user for each row
begin
insert into user_logs(id) values (1);
end;
查看
show trigger;
删除
drop trigger tb_user_insert_trigger;
2、update
创建
create trigger tb_user_update_trigger
after update on tb_user for each row
begin
insert into user_logs(id,params) values (1,concat('更新前的id:',old.id,
'更新后的id:',new.id));
end;
触发器是数据库中的一个重要工具,用于在数据插入、更新或删除时自动执行特定的SQL语句,以维护数据完整性。本文介绍了触发器的工作原理,如OLD和NEW别名的使用,并提供了insert、update和delete三种类型的触发器创建、查看和删除的语法示例。通过实例展示了如何在数据变更时记录日志,强调了触发器在数据校验和日志管理中的作用。
1888

被折叠的 条评论
为什么被折叠?



