当前位置: 首页 > news >正文

Mysql触发器

文章目录

    • 1. 简介
    • 2. 触发器语法

1. 简介

触发器是与表有关的数据库对象,指在insert/update/delete之前或之后,触发并执行触发器中定义的sql语句集合。触发器可以协助应用在数据库端确保数据的完整性,日志记录,数据校验等操作。使用别名OLD和NEW来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。现在触发器还只支持行级触发,不支持语级触发。

触发器类型new和old
insert型触发器new 表示将要或者已经新增的数据
update型触发器old表示修改之前的数据,new表示将要或已经修改后的数据
delete型触发器old表示将要活着已经删除的数据

2. 触发器语法

  • 创建触发器
create trigger trigger_name
before/after insert/update/delete
on table_name for each row --行级触发器
begin trigger_stmt;
end 
  • 查看触发器
show triggers;
  • 删除触发器
drop trigger [schema_name.]trigger_name; --如果没有指定shcema_name,默认为当前数据库
  • 案例

通过触发器记录某个表的数据变更日志,将变更日志插入到日志表user_logs中,包含增加,修改和删除;

创建日志表

create table user_logs(id int(11) not null auto_increment,operation varchar(20) not null,operate_time datetime not null,operate_id int(11) not null,operate_param varchar(500),primary key(id))engine=innodb default charset=utf8;

创建触发器

 create trigger tb_user_insert_triggerafter insert on 用户表 for each rowbegininsert into user_logs(id,operation,operate_time,operate_id,operate_param) values(null ,'insert',now(),new.用户ID,concat('插入数据的内容为:用户ID=',new.用户ID,'姓名=',new.姓名,'年龄=',new.年龄));end;

查看触发器

show triggers;

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

insert into 用户表(姓名,年龄) values('nihao',23);

在这里插入图片描述

http://www.lryc.cn/news/158068.html

相关文章:

  • 认识doubbo和rpc
  • get_views中list的arch格式
  • 淘宝商品销量接口API更新(总销+精准月销API)
  • Android 11编译第三弹 ADB开启ROOT权限
  • 《TCP/IP网络编程》--基于TCP实现字符串对话和文件传输
  • Feign负载均衡写法
  • OpenCV(二十八):连通域分割
  • 达梦控制台还原报错“管道失败”
  • [杂谈]-快速了解直接内存访问 (DMA)
  • java八股文面试[设计模式]——23种设计模式
  • mysql(十)mysql主从复制--主库切换
  • vue3项目的src下的各个文件夹介绍
  • 五、编译预处理
  • 应用出海,Google 分享如何让数字营销素材再上层楼
  • 酱香咖啡喝了没?用数据分析揭秘瑞幸咖啡的7500万用户增长策略
  • Grafana之魔法:揭秘数据可视化的艺术
  • c高级day2作业
  • 第3章 【MySQL】字符集和比较规则
  • 2023 年全国大学生数学建模D题目-圈养湖羊的空间利用率
  • 攻防世界-WEB-ics-05
  • typedef的四种用法
  • Rstudio开不开了怎么办?R is taking longer to start than usual
  • kubernetes 集群安装加载 br_netfilter 模块
  • CATIA Composer软件安装包分享(附安装教程)
  • 入行测试一年半的心得体会
  • Vue的props配置项
  • Python开源项目周排行 2023年第32周
  • Python实现猎人猎物优化算法(HPO)优化卷积神经网络回归模型(CNN回归算法)项目实战
  • mysql8 Found option without preceding group错误
  • uniapp 路由不要显示#