【MySQL-20】关于触发器,你需要知道这些——>定义(创建&查看&删除) 触发器,将变更日志插入日志表中

前言

大家好吖,欢迎来到 YY 滴MySQL系列 ,热烈欢迎! 本章主要内容面向接触过C++的老铁
主要内容含:
在这里插入图片描述

欢迎订阅 YY滴C++专栏!更多干货持续更新!以下是传送门!

  • YY的《C++》专栏
  • YY的《C++11》专栏
  • YY的《Linux》专栏
  • YY的《数据结构》专栏
  • YY的《C语言基础》专栏
  • YY的《单片机》专栏
  • YY的《STM32》专栏
  • YY的《数据库》专栏

目录

  • 一.触发器的介绍&类型
  • 二.触发器操作的相关语法【创建&查看&删除】
  • 三.定义触发器,完成如下需求

一.触发器的介绍&类型

  • 注意:触发器只支持 行级触发器
    在这里插入图片描述

二.触发器操作的相关语法【创建&查看&删除】

在这里插入图片描述

三.定义触发器,完成如下需求

在这里插入图片描述

-- 触发器
-- 需求:通过触发器记录 user 表的数据变更日志(user_logs),包含增加,修改 ,删除;-- 准备工作:日志表 user_logs
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;-- 查看触发器
show triggers ;
-- 删除
drop trigger tb_user_insert_trigger;
drop trigger tb_user_update_trigger;
drop trigger tb_user_delete_trigger;-- 插入数据触发器
create trigger tb_user_insert_triggerafter insert on tb_user for each row
begininsert into user_logs(id, operation, operate_time, operate_id, operate_params) VALUES (null, 'insert', now(), new.id, concat('插入的数据内容为:id=',new.id,',name=',new.name, ',phone=',NEW.phone,",email='
end 
;
-- 测试:插入数指型tb_user
insert into tb_user(id, name, phone, email, profession, age, gender, status, createtime) 
VALUEs (26,"子'18809891212', 'error','teacher',23,'女','null','2022.2.21');-- 修改数据触发器
create trigger tb_user_update_triggerafter update on tb_user for each row
begininsert into user_logs(id, operation, operate_time, operate_id, operate_params)VALUES(null,"update',now(),new.id.concat('更新之前的数据:id=',old.id,',name=',old.name,',phone=', old.phone,',email=', old.email,',sprofession=',old.profession,'|更新之后的数据: id=',new.id,',name=',new.name,', phone=', NEw.phone, ', email=', NEw.email,',profession=', NEW.profession));
end;
-- 测试:update影响多少行,就会记录几次
update tb_user set profession='会计'where id = 23;
update tb_user set profession='会计'where id <= 5;-- 删除数搭触发器
create trigger tb_user_delete_triggerafter delete ontbuser for each row
begininsert into user_logs(id, operation, operate_time, operate_id, operate_params) VALUES
(null,'delete', now(),old.id, concat('删除之前的数: id=',old.id,',name=',old.name, ', phone=', old.phone,', email=', old.email,', profession=', NEW.profession));
end:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/48784.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记录一下在Hyper-v中动态磁盘在Ubuntu中不完全用到的问题(扩展根目录)

在之前给hyper虚拟机的Ubuntu分配磁盘有20G&#xff1b; 后来在Ubuntu中查看磁盘发现有一个分区没用到&#xff1a; 贴的图片是完成扩展后的 之前这里是10G&#xff0c;然后有个dev/sda4的分区&#xff0c;也是10G&#xff0c;Type是Microsoft Basic Data&#xff1b; …

植物神经紊乱?别担心,跟我一起轻松锻炼放松吧!

&#x1f33c;哈喽&#xff0c;小伙伴们&#xff01;最近我遇到了一个小问题&#xff0c;就是植物神经紊乱&#xff0c;搞得我整个人都不好了&#x1f623;。但是&#xff0c;我可是个爱生活、爱自己的小太阳&#xff0c;怎么可能轻易被打败呢&#xff1f;&#x1f31e; &#…

私家车位共享系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;车辆信息管理&#xff0c;车辆类型管理&#xff0c;车位信息管理&#xff0c;订单信息管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;车辆信息&a…

分享 2 个 .NET EF 6 只更新某些字段的方法

前言 EF 更新数据时&#xff0c;通常情况下&#xff0c;是更新全部字段的&#xff0c;但实际业务中&#xff0c;更新全部字段的情况其实很少&#xff0c;一般都是修改其中某些字段&#xff0c;所以为了实现这个目标&#xff0c;很多程序员通常会这样作&#xff1a; 先从数据库…

ffmpeg中的超时控制

在FFmpeg库中&#xff0c;很多函数没有直接的参数可以设置超时。 那么有哪些函数可以通过设置 AVFormatContext 的 interrupt_callback 来实现超时控制&#xff1f; avformat_open_input&#xff1a; 打开输入文件或流。这个函数会阻塞&#xff0c;尤其是在网络流的情况下&…

Robot Operating System——借用内存型消息

大纲 功能和工作原理源码分析POD特点POD 类型的优点 非POD特点 生成并发布“借用内存型消息”POD类型非POD类型 在ROS 2中&#xff0c;"loaned message"是一种消息传递机制&#xff0c;用于在发布者&#xff08;publisher&#xff09;和订阅者&#xff08;subscriber…

HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号2

基础认证题库请移步&#xff1a;HarmonyOS应用开发者基础认证题库 注&#xff1a;有读者反馈&#xff0c;题库的代码块比较多&#xff0c;打开文章时会卡死。所以笔者将题库拆分&#xff0c;单选题20个为一组&#xff0c;多选题10个为一组&#xff0c;题库目录如下&#xff0c;…

NFT革命:数字资产的确权、营销与元宇宙的未来

目录 1、NFT&#xff1a;数字社会的数据确权制度 2、基于低成本及永久产权的文化发现 3、PFP&#xff1a;从“小图片”到“身份表达”&#xff0c;再到社区筛选 4、透明表达&#xff1a;NFT 在数字化营销中的商业价值 5、可编程性&#xff1a;赋予 NFT 无限可能的应用 5.…

PTA - 输出元组内指定值

输入一序列数字&#xff0c;以空格分隔开&#xff0c;将其转换为元组进行操作&#xff0c;输出元组内7的倍数及个位是7的数。 输入格式: 输入多个自然数&#xff0c;以空格分隔。 输出格式: 查找元组内7的倍数及个位是7的数输出&#xff0c;以空格分隔。 输入样例: 在这里…

【Vue3】组合式 API

【Vue3】组合式 API 背景简介开发环境开发步骤及源码setup 语法糖setup 扩展组件总结 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪…

HCIP笔记[第4章-重发布+路由策略]

重发布 作用&#xff1a; 在两种路由协议之间&#xff0c;或者一个协议的不同进程之间&#xff0c;借助ASBR&#xff08;同时工作在两种协议或者协议的不同进程中&#xff09;学习到两个网络的路由信息&#xff0c;并且通过重发布进行路由共享&#xff0c;最终实现全网可达。 …

springSecurity学习之springSecurity流程

springSecurity流程 认证流程 登录请求进入UsernamePasswordAuthenticationFilter&#xff0c;父类是AbstractAuthenticationProcessingFilter&#xff0c;执行AbstractAuthenticationProcessingFilter的doFilter方法 authResult attemptAuthentication(request, response);确…

springcloud-远程调用超时问题

1、报错信息&#xff1a; 09:06:34.992 [PollingServerListUpdater-0] INFO c.n.config.ChainedDynamicProperty - Flipping property: device-managmet.ribbon.ActiveConnectionsLimit to use NEXT property: niws.loadbalancer.availabilityFilteringRule.activeConnection…

PYTHON学习笔记(四、pyhton数据结构--列表)

&#xff08;1&#xff09;list列表 列表的含义是指&#xff1a;&#xff08;1&#xff09;一系列的按特定顺序排列的元素组成。&#xff08;2&#xff09;python中内置的可变序列。&#xff08;3&#xff09;在python中使用[]定义列表&#xff0c;元素与元素之间使用英文的逗…

含有罗马字母的txt转换为csv文件读取-报错

r语言绘图二&#xff08;输入复杂的数学符号&#xff0d;&#xff0d;希腊字母表&#xff09; - R语言论坛 - 经管之家(原人大经济论坛) (pinggu.org) CSV读取报错 gcmeta <- read.csv("metadata.csv") > head(gcmeta)Sample Patient Tissue Platform Subty…

CentOS(7.x、8)上安装EMQX

EMQX 是一个高度可扩展的分布式 MQTT 消息服务器&#xff0c;适用于 IoT、M2M 和移动应用程序。以下是在 CentOS 系统上安装 EMQX 的基本步骤&#xff1a; 在 CentOS 上安装 EMQ X 步骤 1: 添加 EMQ X YUM 源 首先&#xff0c;你需要添加 EMQ X 的官方 YUM 源到你的 CentOS 系…

NNOM训练环境搭建(Windows)

目录 一、安装Anaconda 二、安装nnom编译环境 1. 创建并激活虚拟环境 2. 统一安装所有安装包 三、编译NNOM 一、安装Anaconda windows版本&#xff1a;Anaconda3-2019.10-Windows-x86_64.exe 勾选添加进系统环境变量&#xff0c;其他使用默认选项进行安装。 二、安装nnom…

Dubbo 的服务降级

在分布式系统中&#xff0c;服务的高可用性是至关重要的。然而&#xff0c;由于网络故障、服务器宕机等原因&#xff0c;服务不可用的情况时有发生。为了确保系统的稳定性和用户体验&#xff0c;Apache Dubbo 提供了服务降级功能。服务降级可以在远程服务不可用时&#xff0c;自…

pycharm报错:No module named pip/No module named pytest

1、问题概述? 今天在执行一个python脚本的时候,控制台提示:No module named pytest,就是没有pytest模块,于是我使用pip命令进行安装,命令如下; pip install pytest 结果又提示No module named pip,说我没有pip模块,没办法,再安装pip 2、安装pip-方式1 在pycharm的T…

【python基础知识】整除

熟练使用你所常用的开发语言是一个非常基本的要求。如果你日常需要使用Python&#xff0c;但是你对向上取整&#xff0c;向下取整&#xff0c;以及Python中的默认实现方式是什么都不知道的话&#xff0c;那么我就需要怀疑你的专业能力了。 1. 整除 讲解这个整除的知识&#xf…