当前位置:网站首页 > 技术博客 > 正文

mysql触发器(MySQL触发器 (通过Navicat 编辑))



触发器(trigger)是MySQL提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作(insert,delete, update)时就会激活它执行

  • 可在写入数据表前,强制检验或转换数据。
  • 触发器发生错误时,异动的结果会被撤销。
  • 部分数据库管理系统可以针对数据定义语言(DDL)使用触发器,称为DDL触发器。
  • 可依照特定的情况,替换异动的指令 (INSTEAD OF)。

DELIMITER |
CREATE TRIGGER .
< [ BEFORE | AFTER ] > < [ INSERT | UPDATE | DELETE ] >
ON [dbo] //dbo代表该表的所有者
FOR EACH ROW
BEGIN
–do something
END |






现在我用两个表 一个是 A表 一个是B表 我想在A表更新数据的时候 给B表添加一条 记录 (类似于日常使用的Log)应用场景如:记录用户的余额变动 记录登陆日志 等

 
  

B表结构

 
  

比如说 我在A表 修改的时候 在B中存储一条 记录修改 之前的数据
在A表中添加触发器
在这里插入图片描述

触发器部分 应该很好理解
名:就是定义个名字
触发:有两个参数 BEFORE就是在 之前操作执行 AFTER 就是在操作之后执行
插入:当A表 执行插入新数据的时候 执行
更新:当A表 执行更新数据的时候 执行
删除:当A表 执行删除数据的时候 执行




重要
定义:这里要写 你要执行的 SQL语句 语法参看一下 3、MySQL 语法
在这里插入图片描述
在Navicat中定义


 
  

要注意 代码中的 old 代表 修改之前的数据 如果想用处理之后的 数据 就用 new 就可以

这里就简单的写了一个 添加log的 小demo吧 如果想做其他的操作 就在这里处理就可以 自己写一下 SQL语句

A表数据
在这里插入图片描述
B表数据
在这里插入图片描述
当A表中一项发生修改时:
修改的id为3
在这里插入图片描述
B表会添加一条记录
记录A表id为3修改之前的数据
在这里插入图片描述








注意:我在使用时候初次添加保存的时候 mysql报错 权限不足 我给了最高权限就可以保存了

版权声明


相关文章:

  • 大端模式和小端模式的优缺点2025-10-24 12:30:06
  • linux中user是什么意思2025-10-24 12:30:06
  • linux系统发行版本号查询2025-10-24 12:30:06
  • fastjson-1.2.53.jar2025-10-24 12:30:06
  • 内存检测工具memtest怎么看结果2025-10-24 12:30:06
  • linux m42025-10-24 12:30:06
  • python多线程技术2025-10-24 12:30:06
  • exe怎么注册2025-10-24 12:30:06
  • 全局代理有什么用2025-10-24 12:30:06
  • 数据库基础介绍2025-10-24 12:30:06