MySql_触发器

MySql_触发器

概念

  • 触发器是与表有关的数据库对象,指在insert、update、delete之前或之后,触发并执行触发器中定义的SQL语句集合。触发器的这种特性可以协助应用在数据库确保数据的完整性,日志记录,数据校验等操作。
  • 使用别名old和new来引用触发器中发生变化的记录内容。mysql触发器还只支持行级触发,不支持语句级触发。
触发器类型new和old
insert 型触发器new 表示将要或者已经新增的数据
update 型触发器old表示修改之前的数据,new表示修改之后的数据
delete 型触发器old表示将要或者已经删除的数据

before 之前触发,after 之后触发

环境:

在这里插入图片描述

在这里插入图片描述

insert 类型触发器的语法

  • 创建
CREATE TRIGGER tb_user_insert_trigger
AFTER INSERT ON tb_user FOR EACH ROW
  INSERT INTO user_log(id,operation,operation_time,operation_id,operation_params)VALUES
  (NULL,'insert',NOW(),new.id,
  CONCAT('插入的数据内容为: id=',new.id,',username=',new.username,',password=',new.password));
END;

INSERT INTO tb_user(id,username,`password`)VALUES(1,'haha','123456');

该触发器表示在向tb_user表中插入数据后触发该触发器,向日志表中插入操作日志

  • 查看
SHOW TRIGGERS;
  • 删除
DROP TRIGGER [schema_name.]trigger_name;

-- schema_name. 代表删除哪个数据库的触发器

update类型触发器的语法

  • 创建
CREATE TRIGGER tb_user_update_trigger
AFTER UPDATE ON tb_user FOR EACH ROW
  INSERT INTO user_log(id,operation,operation_time,operation_id,operation_params)VALUES
  (NULL,'update',NOW(),new.id,
  CONCAT('插入的数据内容为: id=',old.id,',username=',old.username,',password=',old.password
  ' | 插入的数据内容为: id=',new.id,',username=',new.username,',password=',new.password));
END;

UPDATE tb_user SET username='heihei' WHERE id=1;

该触发器表示在向tb_user表中更新数据后触发该触发器,向日志表中插入更新操作日志

delete 类型触发器的语法

  • 创建
CREATE TRIGGER tb_user_delete_trigger
AFTER DELETE ON tb_user FOR EACH ROW
  INSERT INTO user_log(id,operation,operation_time,operation_id,operation_params)VALUES
  (NULL,'delete',NOW(),old.id,
  CONCAT('删除数据内容为: id=',old.id,',username=',old.username,',password=',old.password));
END;

DELETE FROM tb_user WHERE id=1;

该触发器表示在向tb_user表中删除数据后触发该触发器,向日志表中插入删除的操作日志

qiumin

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值