MySQL数据分析进阶(九)触发器

news2024/12/24 9:04:09

 ※食用指南:文章内容为‘CodeWithMosh’SQL进阶教程系列学习笔记,笔记整理比较粗糙,主要目的自存为主,记录完整的学习过程。(图片超级多,慎看!)

【中字】SQL进阶教程 | 史上最易懂SQL教程!10小时零基础成长SQL大师!!icon-default.png?t=N7T8https://www.bilibili.com/video/BV1UE41147KC/?spm_id_from=333.1007.0.0&vd_source=b287f1f4a1fa54cc438e31a0f87ef4e2

第九章:触发器

1、TIGGERS——触发器

触发器:在插入、更新和删除语句前后自动执行的一堆SQL代码,使用触发器增强数据的一致性

CREATE TRIGGER payments_after_insert:触发器关联到付款表,并会在插入一条记录后点燃

payments_after_insert:多数为触发器命名时使用的格式

payments明确表名

after触发器在SQL语句之前还是触发

insert插入语句,引爆触发器的SQL语句类型(仅为名字,无实质影响)

NEW:会返回刚插入的行;OLD:更新或删除行

NEW.:一个点,可以获取单独属性

确认payments有amount列

每次往列里插入新纪录,通过NEW.amount就可以获取新的payment_total

触发器中我们可以修改任何表中的数据,除了触发器所在表(payments),否则会变成无限轮回,因为这个触发器能自燃

基于payments触发,不能继续在此表插入触发器

原来数据:

练习:

删掉payment表中的payment_id = 9

Invoices表也随之改变

2、VIEWING TRIGGERS——查看触发器

SHOW TRIGGERS:查看当前数据库的所有触发器

如果只想看有关payments表的触发器

3、DROPPING TRIGGERS——删除触发器

可选并建议加上:IF EXISTS

最好把删除与创建语句放到同一个脚本文件,并录入一个源代码库中

如此不仅团队的每个人都可以创建同样的数据库,还可以看到历史数据库修改记录

4、USING TRIGGERS FOR AUDITING——使用触发器进行审计

触发器用途:为了之后审计的目的而记录对数据库的修改(相当于查看修改日志)

①打开payments_audit并执行

②插入记录

③创建好后触发器后执行,得到插入数据的时间记录

④再创建一个触发器,更新付款信息后启动

先删除以上数据

client_id在payments表中的payment_id是10

payments表删除同时payments_audit新增记录

(删掉了,但是我的记录没有新增……留着这个坑......)

以上的审计表是简化了,实际应用中,或许需要为多张表记录变更。这种情况不建议为数据库中的每张表分别创建审计表,太重复劳动

可以建立一个总架构来记录变更

5、EVENTS——事件

事件:根据计划执行的任务或一堆SQL代码,可以执行一次或者按规律执行(每天/每周)

自动化数据库维护任务:删除已经过期的数据、把数据从一张表复制到存档表、汇总数据生成报告

查看、编辑事件:

①打开MySQL事件调度器(后台程序,每时每刻都在寻找需要执行的事件)

可以看到MySQL所有的系统变量

②只查找事件管理器变量

③event_scheduler:时间调度器且默认设置为开启

如果想关掉

建立一个事件

①首先修改默认分隔符并命名事件

以事件执行时间间隔大头命名

便于容易找到每月、每年或单次触发的事件

②设定执行时间

单次AT,规律性EVERY,也可以加上限定时间

③在主体部分写下执行内容

也可以使用DATEADD、DATESUB这两种方式

完整代码:

6、VIESING AND DROPPING EVENTS——查看和更改事件

①查看事件:

以时间命名便于查找

②删除事件

ALTER EVENT:修改事件,而不用删除再重建

语法和CREATE EVENT语句完全一样

可直接修改执行时间和主体

也可以用来暂时启用或者禁用一个事件

————TBC

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

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

相关文章

Oracle: oracle大小写敏感问题

oracle大小写敏感含义:比如创建表A和a,A和a是两个不同的表(表名不同)。 oracle大小写不敏感含义:比如创建了A表就不能创建a表,将A和a看成是相同的表(表名相同)。 1、查询用户是否存…

嵌入式人工智能(47-Pycharm通过SSH远程连接调试树莓派4B服务器)

用过Pycharm的同学都知道,这个IDE非常强大,强大到写个Helloworld都不值当运行它,等我打开的功夫,sublime都运行结束了。但是往往写大项目,尤其是web前后端的程序用Pycharm非常爽了,多标签页,前后…

AI Agent Market: Soverin - 引领未来的AI工具中心

随着人工智能技术的快速发展,AI代理正在成为企业不可或缺的新入口。最近,扎克伯格和黄仁勋的对话强调了AI代理的重要性,将其视为继电子邮件、网站和社交媒体之后的第四大企业必备工具。在这个背景下,Soverin作为一个成熟的AI应用和代理市场平台,正引领着AI工具市场的未来趋…

Android平台RTMP直播推送模块技术接入说明

技术背景 大牛直播SDK跨平台RTMP直播推送模块,始于2015年,支持Windows、Linux(x64_64架构|aarch64)、Android、iOS平台,支持采集推送摄像头、屏幕、麦克风、扬声器、编码前、编码后数据对接,功能强大&…

XCode15.4真机运行调试

更新Xcode后,没有模拟器内容,而且真机也不显示,编译按钮无法点击,设备在管理运行目标中可见,但无法选中 解决方案:下载iOS17.5模拟器,但最坑的是直接点击“Get”下载总是中断,且无…

mysql幻读现象及其避免策略

mysql幻读现象及其避免策略 1、幻读是什么?2、快照读与当前读3、如何避免幻读?3.1 快照读3.2 当前读 💖The Begin💖点点关注,收藏不迷路💖 1、幻读是什么? 幻读是事务中第二次查询返回了之前不…

Spring Boot 3.x gradle脚手架工程build.gradle详解

为了让读者轻松掌握gradle项目构建脚本中各种配置,我们将从0开始一点点启用配置,以做实验的尝试方式,让大家对各种配置的作用有比较深的印象。如果觉得对你有帮助,记得点赞收藏,关注小卷,后续更精彩&#x…

2024视频编辑网站微服务

文章目录 项目描述流量数据算法主站服务AIGC功能服务视频剪辑服务任务调度服务算法部署服务 项目描述 一款海外视频编辑工具,提供视频编辑、多媒体资源的AI处理、AIGC生成素材等功能。 流量数据 数据: 月活MAU(过去30天活跃用户数)为500万,20%的用户每…

跳蚤市场小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,管理员管理,商品信息管理,论坛管理,收货地址管理,基础数据管理,轮播图信息 微信端账号功能包括:系统首页&a…

windows 达梦到ORACLE dblink

达梦通过DBLINK访问Oracle数据库有两种: 方式一:通过Oracle oci接口; 方式二:一种是通过ODBC数据源的方式。 本案例选择使用Oralce OCI的方式去访问Oracle数据库。 配置Oracle OCI客户端 下载地址:https://www.oracle.com/database/techno…

提升人事工作效率,打造智慧校园人事管理系统

智慧校园人事管理系统中的“人事工作”功能是为了提高校园内人力资源管理的效率和规范化水平,确保教职工队伍的健康发展。这一功能涵盖了从面试管理、职工培训、职工考核、职工体检、职称评定到职工关怀等多个方面,旨在全方位支持教职工的职业发展和个人…

没有mac电脑ios上架截屏截图的最新方法

很多人使用uniapp或其他跨平台框架开发ios的app,上架的时候都会遇到一个问题,上架的时候需要各种尺寸的设备来做ios截屏,比如目前最新的要求是,需要对6.7寸、6.5寸和5.5寸的iphone进行截屏,假如支持ipad则还需要对ipad…

MySQL多表查询练习(53题)

MySQL多表查询练习 学生表、教师表、课程表、分数表 1、查询语文比数学成绩高的学生的信息以及课程分数 2、查询语文比数学成绩低的学生的信息以及课程分数 3、查询语文等于数学成绩的学生的信息以及课程分数 4、查询平均成绩大于等于60分的同学的学生编号,学生姓名…

C语言:求阶乘倒数之和

(1)题目:求Sn11/21/3...1/n,保留4位小数。 (2)代码: #include "stdio.h" int main() {int n; // 整数ndouble sum 0.0; // 倒数之和printf("请输入一个整数:"…

探索AI与社交的交汇点:看Facebook如何引领智能化革命

在当今数字化时代,人工智能(AI)正成为各大科技公司变革的重要驱动力。作为全球领先的社交媒体平台,Facebook(现Meta Platforms)正处于这一智能化革命的前沿。通过不断创新和应用AI技术,Facebook…

气膜建筑的抗风与防火性能:保障仓储的安全—轻空间

气膜建筑以其独特的结构和材料优势,为仓储设施提供了可靠的安全保障。在应对自然灾害特别是强风和火灾时,气膜建筑展示了优异的抗风和防火性能。轻空间将详细探讨这些性能及其在实际应用中的表现。 气膜建筑的抗风能力源于其特殊的结构设计和高性能材料。…

【算法】普里姆算法解决修路问题

应用场景——修路问题 1.某地有 7 个村庄(A,B,C,D,E,F,G),现在需要修路把 7 个村庄连通 2.各个村庄的距离用边线表示(权),比如 A - …

学习日志8.7--防火墙安全策略

安全区域之间的数据流动方向,是根据安全级别的优先级来定义的,如果是从优先级高的地方到优先级低的地方,比如说从Local(100)发送到Trust(85)是outbound,如果是从优先级低的地方到优先…

回归预测|基于雪消融优化极端梯度提升树的数据回归预测Matlab程序SAO-XGBoost多特征输入单输出 含基础模型

回归预测|基于雪消融优化极端梯度提升树的数据回归预测Matlab程序SAO-XGBoost多特征输入单输出 含基础模型 文章目录 前言回归预测|基于雪消融优化极端梯度提升树的数据回归预测Matlab程序SAO-XGBoost多特征输入单输出 含基础模型 一、SAO-XGBoost模型二、实验结果三、核心代码…

SolidEdge二次开发(C#)-遍历装配体

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1、前言2、在SolidEdge中创建一个装配体模型3、遍历的代码 1、前言 SolidEdge二次开发过程中,针对装配体的遍历是采用递归方法来完成的,能获…