首页 > 数据库 >mysql-触发器

mysql-触发器

时间:2025-01-04 15:29:39浏览次数:3  
标签:触发器 name trigger mysql new operation id

       触发器是与表有关的数据对象,指在insert/update/delete之前或之后,触发并开始执行触发器中定义的SQL语句集合,触发器 这种特性可以协助应用在数据库段确保数据的完整性,日志记录,数据校验等操作。

语法:  

  • 创建
create trigger trigger_name
before/after insert/update/delete
on tbl_name for each row --行级触发器
begin
     trigger_stmt;
end;
  • 查看
show triggers;
  • 删除
drop trigger [schema_name.] trigger_name;// 如果没有指定schema_name,默认为当前数据库;
触发器类型NEW和OLD
INSERT型触发器NEW表示将要或者已经新增的数据
UPDATE型触发器OLD表示修改之前的数据,NEW表示将要或已经修改后的数据
DELETE型触发器OLD表示将要或者已经删除的数据
  •  INSERT类型
create table user_logs(
id int(11) not null auto_increment,
operation varchar(20) not null comment '操作类型 insert/update/delete',
operate_time datetime not null comment '操作时间',
operate_id int(11) not null comment '操作的id',
operate_params varchar(500) comment '操作参数',
primary key('id')
)engine=innodb default charset=utf8;
// 插入数据触发器
create trigger tb_user_trigger after insert on tb_user for each row
begin 
     insert into user_logs(id,operation,operation_time,operation_id,operation_params) values(null,'insert',now(),new.id,concat('插入的数据内容为:id=',new.id,'name=',new.name,'phone=',new.phone,'email=',new.email,'profession=',new.profession);
end;
// 查看触发器
show triggers;

 

  • UPDATE类型
// 插入数据触发器
create trigger tb_user_trigger after update on tb_user for each row
begin 
     insert into user_logs(id,operation,operation_time,operation_id,operation_params) values(null,'update',now(),new.id,concat(更新之前的数据为:id=',old.id,'name=',old.name,'phone=',old.phone,'email=',old.email,'profession=',old.profession
'更新之后的数据为:id=',new.id,'name=',new.name,'phone=',new.phone,'email=',new.email,'profession=',new.profession);
end;
// 查看触发器
show triggers;
  • DELETE类型
// 插入数据触发器
create trigger tb_user_trigger after delete on tb_user for each row
begin 
     insert into user_logs(id,operation,operation_time,operation_id,operation_params) values(null,'delete',now(),old.id,concat(删除之前的数据为:id=',old.id,'name=',old.name,'phone=',old.phone,'email=',old.email,'profession=',old.profession);
end;
// 查看触发器
show triggers;

 

标签:触发器,name,trigger,mysql,new,operation,id
From: https://blog.csdn.net/m0_73863802/article/details/144928272

相关文章

  • Python高校大学生社交系统(Pycharm Flask Django Vue mysql)
    文章目录开发技术介绍具体实现截图开发技术设计思路系统测试核心代码部分展示文章目录/写作提纲参考开发与测试:源码/演示视频获取方式开发技术介绍语言设计并实现了高校社交系统。该系统基于B/S即所谓浏览器/服务器模式,应用vue框架,选择MySQL作为后台数据库。系统主......
  • MySQL事务(上)
    MySQL事务背景知识一个买票行为可能被多个线程访问,这就有可能造成一些错误,如上图所示一张票就卖出去两次,这是因为买票的过程不是原子的,这个过程会被打断,如何解决上述问题。买票的过程是原子的买票互相应该不能影响买完票是永久有效的前后的状态是确定的这就有点像操作......
  • mysql 使用时需要注意的
    查询常用的查询字段,记得加索引加索引能够提高查询速度。join不要超过两张表join越多,查询越慢。最好用简单的查询语句。分页查询一定要记得加orderbyMYSQL分页查询时没有用ORDERBY,数据量大的时候,有可能会出现数据重复。详情见:https://cloud.tencent.com/develo......
  • Java项目:师生健康信息管理系统(java+SpringBoot+Mybaits+Vue+elementui+mysql)
     源码获取:俺的博客首页"资源"里下载!项目介绍springboot师生健康信息管理系统环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.硬件环境:windows7/8/101G内存以上;或者MacO......
  • Java项目:师生健康信息管理系统(java+SpringBoot+Mybaits+Vue+elementui+mysql)
     源码获取:俺的博客首页"资源"里下载!项目介绍springboot师生健康信息管理系统环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.硬件环境:windows7/8/101G内存以上;或者MacO......
  • MySQL锁的概念
    锁的基本概念锁在MySQL中是一种并发控制机制,它确保在多用户或多事务环境下数据的完整性和一致性。当多个事务同时访问和操作数据库中的数据时,为了防止数据出现不一致、丢失更新、脏读、不可重复读和幻读等问题,就需要使用锁来协调这些事务的访问顺序。例如,在一个银行转账系......
  • MySQL 的内部临时表
    在有些情况下,MySQLServer会在处理语句时创建内部临时表。用户无法直接控制这种情况何时发生。 通常情况下,内部临时表首先保留在内存中,以获得最佳查询性能。为避免内存分配过多,MySQL提供了参数,可用于设置内存限制。当达到该限制时,内部临时表就会溢出到磁盘存储。MySQL可能会......
  • 使用学生优惠创建 Azure Database for MySQL 数据库
    前言在此之前,你需要拥有一个已通过学生认证的Azure账户。关于通过Azure学生认证,网上已有大量教程,此处不再赘述。前些日子认证通过了Azure的学生认证,在部署此网站时发现Azure的B1s服务器用来部署网站同时部署数据库会出现内存不足的情况,同时想到Azure还为学生用户提......
  • MySQL高级篇之事务篇。
    文章目录1.数据库事务概述1.1存储引擎支持情况1.2基本概念1.3事务的ACID特性1.4事务的状态2.如何使用事务2.1显式事务2.2隐式事务2.3隐式提交数据的情况2.4使用举例1:提交与回滚2.5使用举例2:测试不支持事务的engine2.6使用举例3:SAVEPOINT3.事务隔离级别3.1......
  • 高性能MySQL(第4版)PDF、EPUB免费下载
    适读人群:不但适合数据库管理员(DBA)阅读,也适合开发人员参考学习。不管是数据库新手还是专家,相信都能从本书有所收获领域经典十年后全版更新||全面拥抱8.0||重磅剖析现代云数据库与大规模运维实践||中国首批DBA精琢翻译5大头部国产数据库创始人联合力荐电子版仅供预览,下载后24小......