Mysql增删改触发器(详细带注释) 以及各个参数用处


修改的情况

DROP TRIGGER IF EXISTS a1;   //如果有这个触发器就删除当前触发器
CREATE TRIGGER a1    //设置触发器的名字
AFTER INSERT ON namestudent   //设置是哪个表使用的触发器比如这个表的名字是namestudent    和设置是insert 还是update 才触发
FOR EACH ROW          //表示每插入一行都会触发一次
BEGIN            //开始
  INSERT INTO log (name, date, text)  VALUES (NEW.name, NOW(), "插入操作");  //如果name表被插入之后触发给log日志表也进行一个插入操作 new.name 获取namestudent表中的name属性 (也就是触发器的表中name属性)   NOW() 获取系统时间      最后一个是自定义
 
END;   //结束

除了FOR EACH ROW  还有  AFTER INSERT  和  BEFORE INSERT用于指定触发器的执行时间,
AFTER INSERT       表示在数据被插入后执行触发器
BEFORE INSERT    则表示在数据被插入之前执行触发器。此外,还有更多用于触发器的操作指令,

如DELETE、UPDATE、AFTER DELETE和BEFORE UPDATE等。


删除的情况

DROP TRIGGER IF EXISTS a1;
CREATE TRIGGER a1
BEFORE DELETE ON name  // 在删除之前触发
FOR EACH ROW
BEGIN
  INSERT INTO log (name, date, text,user)  VALUES (OLD.name, NOW(), "删除操作",SYSTEM_USER());
END;


1. CURRENT_TIMESTAMP():获取当前时间戳
2. DATABASE():获取当前操作的数据库名
3. CONNECTION_ID():获取当前连接的ID
4. LAST_INSERT_ID():获取上一条插入语句生成的自增ID
5. VERSION():获取当前MySQL版本号
6. SLEEP():使当前连接休眠一段时间
7. NOW():获取当前日期时间
8. RAND():生成一个随机数
9. SYSTEM_USER():获取当前操作系统用户
10. FOUND_ROWS():获取上一条SELECT语句返回的记录数
4. LAST_INSERT_ID():获取最后一次插入操作生成的自增ID值


添加修改删除代码

DROP TRIGGER IF EXISTS insert_table_article;
CREATE TRIGGER insert_table_article
AFTER INSERT ON article
FOR EACH ROW
BEGIN
  INSERT INTO table_log (user, operate, text,`table`,date)  VALUES (USER(),"插入一篇文章",NEW.title,"文章", NOW());


END;

DROP TRIGGER IF EXISTS delete_table_article;
CREATE TRIGGER delete_table_article
BEFORE DELETE ON article  
FOR EACH ROW
BEGIN

    INSERT INTO table_log (user, operate, text,`table`,date)  VALUES (USER(),"删除一篇文章",OLD.title,"文章", NOW());
END;


DROP TRIGGER IF EXISTS update_table_article;
CREATE TRIGGER update_table_article
BEFORE UPDATE ON article  
FOR EACH ROW
BEGIN
    INSERT INTO table_log (user, operate, text,`table`,date)  VALUES (USER(),"修改一篇文章",CONCAT( OLD.title,'  状态:',OLD.state),"文章", NOW());

END;


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

游迹AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值