mysql 触发器

触发器是数据库中的一个重要机制,它在对表进行insert、update、delete操作前后自动执行定义的SQL语句。主要用于保证数据完整性,实现日志记录等功能。MySQL只支持行级触发,不支持语句触发。文章展示了如何创建insert、update和delete触发器,例如在user表发生变化时,自动在user_logs表中添加相应的日志记录。
摘要由CSDN通过智能技术生成

介绍

触发器是与表有关的数据库对象,指在insert、update、delete之前或之后,触发并执行触发器中定义的SQL语句集合

触发器可以协助应用在数据库确保数据的完整性,日志记录,数据校验等操作。

使用别名OLD 和NEW来引用触发器中发生变化的记录内容,并且mysql只支持行级触发(修改几行就触发几次),不支持语句触发(修改10行触发一次)

触发器类型
在这里插入图片描述

触发器可以一般用于日志记录

创建触发器语法:

create trigger trigger_test1 
   after insert on user for each row
          begin
         ...........
           end

需求:当user表添加一行数据,则会自动在user_log添加日志记录

insert型触发器

create trigger trigger_test1 
after insert on user for each row
begin
  insert into user_logs values(NULL,now(),'new',new.id,new.name);
end

update型触发器

create trigger trigger_test4 
after update on user for each row
begin
  insert into user_logs values(NULL,now(),concat('有用户信息修改:新数据是',NEW.uid,NEW.username,NEW.password),
concat(旧数据是',OLD.uid,OLD.username,OLD.password));
end

delete触发器

create trigger trigger_test5 
after delete on user for each row
begin
  insert into user_logs values(NULL,now(),concat('有用户被删除,删除信息为:',OLD.uid,OLD.username,OLD.password));
end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值