MySQL学习---16、触发器

news2024/12/23 19:43:46

1、触发器

MySQL从5.0.2版本开始支持触发器。MySQL的触发器和存储过程一样,都是嵌入到MySQL服务器的一段程序。

触发器是由某个事件来触发某个操作,这些事件包括Insert、Update、Delete事件。所谓事件就是指用户的动作或者触发某项行为。如过定义了触发程序,当数据库执行这些语句的时候,就相当于事件发生了,就会自动激发触发器执行相应的操作。

1.1 触发器的创建

1、语法结构:

Create Trigger 触发器名称
{ Before | After }{ Insert | Update | Delete} On 表名
for each row
触发器执行的语句块;

说明:
(1)表名:表示监视器监控的对象
(2)Before|After:表示触发的时间。Before表示在事件之前触发;After表示在事件之后触发。
(3)Insert | Update | Delete:表示触发的事件。
Insert:表示插入记录时触发
Update:表示更新记录时触发
Delete:表示删除记录时触发
2、案例实操

CREATE TABLE test_trigger(
	id INT PRIMARY KEY AUTO_INCREMENT,
	t_note VARCHAR(30)
);

CREATE TABLE test_trigger_log(
	id INT PRIMARY KEY AUTO_INCREMENT,
	t_log VARCHAR(30)
);

DELIMITER //
CREATE TRIGGER before_insert 
BEFORE INSERT ON test_trigger
FOR EACH ROW 
BEGIN 
	INSERT INTO test_trigger_log(t_log)
	VALUES('before_insert');
END //

DELIMITER ;
	
INSERT INTO test_trigger(t_note) VALUES('好好学习');
SELECT * FROM test_trigger_log;

在这里插入图片描述

1.2 查看触发器

1、查看当前数据的所有触发器的定义

SHOW TRIGGERS;

在这里插入图片描述
2、查看当前数据库中某个触发器的定义

SHOW CREATE TRIGGER before_insert;

在这里插入图片描述
3、从系统库information_schema的Triggers表中查询‘before_insert’触发器的信息。

SELECT * FROM information_schema.Triggers WHERE Trigger_name='before_insert';

在这里插入图片描述

1.3 删除触发器

触发器也是数据库对象,删除触发器也用drop语句,语法公式:
drop Trigger if exists 触发器名称;

1.4 触发器的优缺点

1.4.1 优点

1、触发器可以确保数据的完整性
2、触发器可以帮助我们记录操作日志
3、触发器可以用在操作数据前,对数据进行合法性检查

1.4.2 缺点

1、可读性差
2、相关的数据的变更,可能会导致触发器出错

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

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

相关文章

杂记——24.HTML中空格的写法

前几天写项目时,突然对HTML中空格的写法感兴趣,于是搜了一下,现在对其进行总结 HTML不是一种编程语言,而是一种超文本标记语言 (markup language),是网页制作所必备的。超文本”就是指页面内可以包含图片、链接&#…

PDF文件转换工具Solid Converter PDF 10.1版本在Win10系统的下载与安装配置教程

目录 前言一、Solid Converter PDF安装二、使用配置总结 前言 Solid Converter PDF是一种PDF文件转换工具,可以将PDF文件转换为Microsoft Word、Excel、PowerPoint等格式。它还支持批量转换和OCR(光学字符识别)功能。 Solid Converter PDF的…

NIO基础

NIO 在学习Netty之前,我们需要先了解一下NIO,以便更好的学习Netty NIO是non-blocking io,也就是非阻塞IO 1.三大组件 1.1 channel & Buffer channel 有一点类似于 stream,它就是读写数据的双向通道,可以从 ch…

【YOLO系列】YOLO v3(网络结构图+代码)

文章目录 网络结构YOLO v3YOLOv3-SPP 多尺度预测损失函数参考 最近在研究YOLO系列,打算写一系列的YOLO博文。在YOLO的发展史中,v1到v3算法思想逐渐完备,后续的系列也都以v3为基石,在v3的基础上进行改进,所以很有必要单…

KD600A变频抗干扰精密介质损耗测量仪

一、产品概述 KD600A变压器介质损耗测试仪是发电厂、变电站等现场自动测量各种高压电力设备介损正切值及电容量的高精度仪器。由于采用了变频技术能保证在强电场干扰下准确测量。仪器采用中文菜单操作,微机自动完成测量。 该仪器同样适用于车间、试验室、科研单位测…

映射及有关概念

映射的概念:有两个集合A,B,若A的任何元素都有唯一的B中元素与之对应,B中元素与之对应的称为像,A中对应的元素称为原像 一个集合也有像,定义为各自像的集合 B中集合也有原像,定义为各自原像的集合 虽然采用了f-1的符号&…

端口隔离、MAC地址表项、MAC地址漂移防止与检测

目录 前言 端口隔离 MAC地址表项 端口安全 MAC地址漂移检测 前言 目前网络中以太网技术的应用非常广泛。然而,各种网络攻击的存在(例如针对ARP、DHCP等协议的攻击),不仅造成了网络合法用户无法正常访问网络资源,…

【案例教程】山洪径流过程模拟及洪水危险性评价技术

GIS水文分析(ArcHydro、Spatial Anlysist等模块)是流域水文模拟建模的重要工具,能够自动提取及计算流域边界、河网水系、流向、汇流时间和其它流域特征参数。美国陆军工程兵团开发的开源、免费Hec-RAS软件具有强大的空间数据分析与整合功能、…

每日学术速递5.13

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.VideoChat: Chat-Centric Video Understanding 标题:VideoChat:以聊天为中心的视频理解 作者:KunChang Li, Yinan He, Yi Wang, Yizhuo Li, Wen…

计算机网络基础知识(五)——什么是TCPUDP协议?图文并茂的方式对两大传输层协议进行从头到尾的讲解

文章目录 01 | 📕 什么是 T C P ? \color{red}{什么是TCP?} 什么是TCP?📕特点三次握手 && 四次挥手超时重传滑动窗口 02 | 📙 什么是 U D P ? \color{orange}{什么是UDP?} 什…

1. 链表

b站懒猫数据结构课程笔记:https://www.bilibili.com/read/cv8013121?spm_id_from333.999.0.0 一、链表的概念 单链表:线性表的链接存储结构 单链表存储特点: 逻辑次序和物理次序不一定相同 元素之间的逻辑关系用指针表示 举例&#xff1a…

PASCAL VOC数据集

一、前言 之前寒假好像就学了,但是没有记笔记,现在看来还是得记笔记,都忘得差不多了啊。 二、数据集的介绍 2.1数据集背景 分类类别 2.2数据集文件结构: 2.3文件夹 2.3.1Annotations文件夹 对于标注文件Annotations:里…

基于SpringBoot框架的程序开发步骤

SpringBoot简介 1. 入门案例问题导入1.1 入门案例开发步骤1.2 基于SpringBoot官网创建项目1.3 SpringBoot项目快速启动 2. SpringBoot概述问题导入2.1 起步依赖2.2 辅助功能 1. 入门案例 问题导入 SpringMVC的HelloWord程序怎么写? SpringBoot是由Pivotal团队提供…

死锁、生产者和消费者问题

目录 生产者和消费者问题 死锁的概念 内存的基础知识 内存管理的概念 覆盖与交换 介绍一下PCB 连续分配管理方式​编辑 生产者和消费者问题 死锁的概念 什么是死锁 进程死锁、饥饿、死循环的区别 死锁产生的必要条件 什么时候会发生死锁 死锁的处理策略 内存的基础知识 内存…

微三云润秋带你解析商城分销系统

管理大师德鲁克曾说过:当今企业间的竞争,不是产品之间的竞争,而是商业模式之间的竞争。创业不只是项目选择重要,好的商业模式同样重要,如果没有好的商业模式,企业将会被淘汰。 今天我们要聊的这个商城就有点…

怎样设置CRM目标?有什么作用?

实施CRM系统可以帮助企业提高客户保留率,增加收入,并推动业绩增长。然而,在实施CRM系统之前,必须设定明确的目标,与企业的整体战略保持一致。在这篇文章中,我们来讨论实施CRM目标是什么,如何设定…

基于AD9172/AD9176的4 通道12.6GSPS 采样率16 位DA 播放FMC JESD204B 接口子卡模块

板卡概述 FMC_XM131 是一款4 通道12.6GSPS 采样率16 位DA 播放FMC子卡模块,该板卡为FMC标准,符合VITA57.4 规范,可以作为一个理想的IO 模块耦合至FPGA 前端,16 通道的JESD204B 接口通过FMC连接器连接至FPGA 的高速串行端…

【Python TurboGears】零基础也能轻松掌握的学习路线与参考资料

Python TurboGears是一款开源的web框架,它篮了多种Python库和工具,可以更容易地开发和维护web应用程序。TurboGears具有优秀的文档和活跃的社区支持,是学习web开发的理想选择之一。以下是Python TurboGears学习路线,参考资料和优秀…

一句话简短解析 jsjiami.v6

jsjiami.v6 是一种广泛使用的 JavaScript 代码混淆工具,它提供了多种代码混淆技术,包括变量名重命名、函数名重构、字符串替换、代码结构混淆等,可以将代码转换为难以理解和阅读的形式。在本文中,我们将对 jsjiami.v6 进行分析&am…

【FMC137】基于 VITA57.4 标准的4 路2GSPS/2.6GSPS/3GSPS 14 位AD 采集子卡模块--AD9208得多通道中文资料

板卡概述 FMC137 是一款基于VITA57.4 标准规范的JESD204B 接口FMC 子卡模块, 该模块可以实现4 路14-bit 、2GSPS/2.6GSPS/3GSPSADC 采集功能。该板卡ADC 器件采用ADI公司的AD9208 芯片,,与ADI 公司的AD9689 可以实现PIN 脚兼容。该ADC 与FPGA…