首页 > 数据库 >mysql触发器模板

mysql触发器模板

时间:2024-07-18 20:18:23浏览次数:15  
标签:oper 触发器 -- dept trigger mysql deptno id 模板

-- 当我们对dept表中的数据进行insert delete update的时候,请将这些操作记录到日志表当中
-- dept的表结构
/*
CREATE TABLE `dept` (
  `DEPTNO` int NOT NULL COMMENT '部门编号',
  `DNAME` varchar(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '部门名',
  `LOC` varchar(13) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '部门地点',
  PRIMARY KEY (`DEPTNO`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
*/
-- 创建日志表
drop table if exists oper_log;

create table oper_log(
  id bigint primary key auto_increment,
  table_name varchar(100) not null comment '操作的哪张表',
  oper_type varchar(100) not null comment '操作类型包括insert delete update',
  oper_time datetime not null comment '操作时间',
  oper_id bigint not null comment '操作的那行记录的id',
  oper_desc text comment '操作描述'
);


-- 如果存在就删除触发器
drop trigger if exists dept_trigger_insetr;
-- 创建inster触发器
create trigger dept_trigger_insert 
after insert on dept
for each row
begin
	insert into oper_log(id,table_name,oper_type,oper_time,oper_id,oper_desc) values
(null,'dept','insert',now(),new.deptno,concat('插入数据:deptno=', new.deptno, ',dname=', new.dname,',loc=', new.loc));
end;


-- 如果存在就删除触发器
drop trigger if exists dept_trigger_update;

-- 创建update触发器
create trigger dept_trigger_update
after update on dept for each row
begin
	insert into oper_log(id,table_name,oper_type,oper_time,oper_id,oper_desc) values
(null,'dept','update',now(),new.deptno,concat('更新前:deptno=', old.deptno, ',dname=', old.dname,',loc=', old.loc, ',更新后:deptno=',new.deptno,',dname=',new.dname,',loc=',new.loc));
end;


-- 如果存在就删除触发器
drop trigger if exists dept_trigger_delete;

-- 创建update触发器
create trigger dept_trigger_delete
after delete on dept for each row
begin
	insert into oper_log(id,table_name,oper_type,oper_time,oper_id,oper_desc) values
(null,'dept','delete',now(),old.deptno,concat('删除的数据:deptno=', old.deptno, ',dname=', old.dname,',loc=', old.loc));
end;




-- 查看触发器
show triggers;

标签:oper,触发器,--,dept,trigger,mysql,deptno,id,模板
From: https://www.cnblogs.com/Leybxin-AXB/p/18310371

相关文章

  • c++ primer plus 第16章string 类和标准模板库,16.2.1 使用智能指针
    c++primerplus第16章string类和标准模板库,16.2.1使用智能指针c++primerplus第16章string类和标准模板库,16.2.1使用智能指针文章目录c++primerplus第16章string类和标准模板库,16.2.1使用智能指针16.2.3uniqueptr为何优于autoptr16.2.3unique......
  • c++ primer plus 第16章string 类和标准模板库,16.2.2 有关智能指针的注意事项
    c++primerplus第16章string类和标准模板库,16.2.2有关智能指针的注意事项c++primerplus第16章string类和标准模板库,16.2.2有关智能指针的注意事项文章目录c++primerplus第16章string类和标准模板库,16.2.2有关智能指针的注意事项16.2.2有关智能指针的......
  • 通过脚本,将MySQL数据转换成单条insert语句
    通过命令,导出数据:SELECT*FROMusersINTOOUTFILE'/tmp/users_data.sql'FIELDSTERMINATEDBY','LINESTERMINATEDBY'\n';通过脚本,转成insert语句:#!/bin/envpython#-*-encoding:utf-8-*-#数据导出命令,注意修改表名#SELECT*FROMusersINTOOU......
  • Linux安装mysql(超详细版)
    步骤1:新建一个文件夹,专放从网络下载的文件[root@iZ2zeh6vyxsq620zifz8jaZhome]#mkdirsoft#在根目录下创建也可以步骤2:切换目录,进入soft文件中[root@iZ2zeh6vyxsq620zifz8jaZ/]#cdhome/#若第一步文件建在根目录则执行该语句,否则不执行[root@iZ2zeh6vyxsq620zif......
  • MySQL与地震学:地震波形数据的实时分析宝典
    ......
  • 16 触发器
    概念触发器trigger是一种特殊类型的存储过程。触发器主要是通过事件进行触发而被执行,而存储过程是可以直接通过存储过程的名字被调用执行触发器的作用1、可以在写入数据表前,强制检验或转换数据,以保证数据安全2、触发器发生错误时,异动的结果会被撤销如果触发器执行发生错误......
  • mysql8在CentOS8上安装实践
    一、下载https://dev.mysql.com/downloads/mysql/历史版本:https://downloads.mysql.com/archives/community/二、解压tar-zxvf/opt/software/mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz-C/usr/local修改mysql目录名称mv/usr/local/mysql-8.0.33-linux-glibc2......
  • CentOS9中MySQL8数据库备份--增量备份方案
    1.关于备份:MySQL中有完全备份、增量备份和差异备份三种常见的备份策略,这次使用增量备份定义:增量备份仅备份自上一次备份(无论是完全备份还是增量备份)以来发生变化的数据。特点:依赖于上一次备份,仅备份变化的部分,因此备份文件较小,但恢复时需要结合之前的备份。优点:备份文件......
  • 数据库MySQL指令
    数据库之搭建1、rpm-qa|grep服务名称案例:rpm-qa|grepmysql2、将所有msyql的包删除干净删除方法:(1)yumremovemysql*删除linux中的数据库(2)yumerase包名,删除linux中的数据库(3)rpm-e--nodeps包名删除linux中的数据库3、mysql的安装a.安装客户端yuminstallmysq......
  • MySQL物理备份-XtraBackup远程备份恢复
    总括:模拟从库故障,从主库备份数据恢复从库,把主库数据远程备份到从库。1.主从库安装xtrabackup工具#安装依赖sudoyuminstallperl-DBIperl-DBD-MySQLperl-IO-Socket-SSLperl-Digest-MD5perl-TermReadKeyqpress#依赖包下载地址https://repo.percona.com/yum/releas......