目录
1.介绍
触发器是与表有关的数据库对象,它在insert/update/delete操作之前或之后触发并执行触发器中定义的SQL语句集合。触发器可以用于确保数据的完整性、进行日志记录和数据校验等操作。在触发器中使用别名OLD和NEW来引用发生变化记录的内容,目前触发器只支持行级触发,不支持语句级触发。
触发器类型 | new和old |
insert类型触发器 | new表示将要或者已经新增的数据 |
update类型触发器 | old表示修改之前的数据,new表示修改之后的数据 |
delete类型触发器 | old表示将要或者已经删除的数据 |
2.触发器
1创建触发器语法
create trigger trigger_name
after/before insert/update/delete
on 触发表名 for each row
begin
SQL;
end;
2.查看触发器
--触发器查看
show triggers;
3.删除触发器
--如果没有指定schema_name(数据库名),默认为当前数据库
drop trigger [数据库名] 触发器名;
演示:
--插入触发器
create trigger tb_user_insert_trigger
after insert on tb_user for each row
begin
insert into user_logs(id, operation, operate_time, operate_id, operate_params) VALUES
(NULL, 'insert', now(), new.id, concat('插入的数据内容为: id=', new.id, 'name=', new.name, 'phone=', NEW.phone, 'email='));
end;
--查看触发器
show triggers;
-- 删除名为tb_user_insert_trigger的触发器
drop trigger tb_user_insert_trigger;
-- 向tb_user表插入数据
insert into tb_user(id, name, phone, email, profession, age, gender, status, createtime)
VALUES (25, '二皇子', '18809091212', 'en', );