mysql触发器triggers

news2024/11/17 17:44:13

文章目录

  • 1、创建触发器
  • 2、 查看触发器
  • 3、删除触发器


在这里插入图片描述

1、创建触发器

语法:

CREATE TRIGGER 触发器名称
BEFORE/AFTER INSERT/UPDATE/DELETE
ON 表名 FOR EACH ROW
BEGIN
SQL逻辑
END;

BEFORE 或 AFTER 表示之前 还是 之后触发
INSERT 或 UPDATE 或 DELETE 表示监听 INSERT操作 还是 UPDATE操作 还是DELETE操作

实例:

CREATE TRIGGER user_insert_trigger
AFTER INSERT ON user FOR EACH ROW
BEGIN
	INSERT INTO user_operation(operation_type, operation_content) values ('insert', CONCAT('添加后的数据:', new.name));
END;

为 user 表创建名为 user_insert_trigger 的触发器,触发器内容是当user表执行insert操作后,执行INSERT INTO user_operation(operation_type, operation_content) values (‘insert’, CONCAT(‘添加后的数据:’, new.name)); 这个sql语句,语句中可以通过new.的形式拿到insert 到 user表的数据

这里除了new.外还有old.

new.表示新的数据;old. 表示原来的数据

2、 查看触发器

show TRIGGERS;

3、删除触发器

DROP TRIGGER 触发器名称

测试数据:

创建2张表,一张user表,一张user_operation表,然后为user表创建触发器,当user表有数据变化时,向 user_operation 表记录操作

user

CREATE TABLE `user`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `age` int(11) NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

user_operation

CREATE TABLE `user_operation`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `operation_type` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `operation_content` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

创建触发器
添加insert类型)

CREATE TRIGGER user_insert_trigger
AFTER INSERT ON user FOR EACH ROW
BEGIN
	INSERT INTO user_operation(operation_type, operation_content) values ('insert', CONCAT('添加后的数据:', new.name));
END;

use表添加数据测:

INSERT INTO user(name, age) VALUES('叶绿思雨', 17);

在这里插入图片描述
user_operation表中查看insert操作的触发器生成的数据:
在这里插入图片描述
查到相应的数据已经生成,说明insert类型的触发器正常被触发

MYSQL文章推荐:
MYSQL视图:
mysql存储

在这里插入图片描述

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

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

相关文章

PostgreSQL 查询某个属性相同内容出现的次数

查询某个数据库表属性 name 相同内容出现出现的次数,并按次数从大到小排序 SELECT name, COUNT(*) AS count FROM your_table GROUP BY name ORDER BY count DESC;示例 select project_id, COUNT(*) AS count from app_ads_positions group by project_id order b…

(WRF/Chem)在大气环境领域实践技术应用

随着我国经济快速发展,我国面临着日益严重的大气污染问题。近年来,严重的大气污染问题已经明显影响国计民生,引起政府、学界和人们越来越多的关注。大气污染是工农业生产、生活、交通、城市化等方面人为活动的综合结果,同时气象因…

智能报修管理系统的作用和功能

智能报修管理系统针对不同的服务对象、不同的服务内容、不同的紧急情况,不同的区域,自定义设定响应指标,承诺客户在多长时间内响应或是解决问题,保障服务质量。随着报修、后勤、运维等规模日趋庞大,许多单位每日需处理…

echarts-根据数据大小实现折线渐变色

先看示例图: 这几年一直在做大数据可视化前端开发,接下来把近几年用到的比较经典案例给大家分享下,主要用到的可视化库为Echarts、Threejs、Element、D3、fabricjs等。 这个案例是Echarts,Echarts算是学习成本比较低的一个很好的…

Java下打印一个等腰三角型

想达到这个结果,通常的做法是通过拼结两个三角型达到,但是实际上还有最右边的第三个三角型没有处理,这个拼结的方法总让人看起来有一点不完美的感觉,于是我自创了一个思路,一气合成,代码如下(本…

想要提高客户留资率?一个留资机器人就够了!

随着移动互联网进入“下半场”,用户在线参与率持续上升,导致企业的获客成本不断攀升。特别是近年来新型营销场景如直播销售、内容推广和短视频引流等的不断涌现,企业在多个渠道和平台上的广告支出激增,试图吸引更多潜在客户。然而…

提升开发效率的低代码思路

目录 一、低代码如何快速开发? 1.可视化开发 2.预构建的组件和模板 3.集成的开发和测试工具 4.跨平台兼容性 5.可伸缩性和可扩展性 二、前后端分离的开发框架 技术架构 部署方式 应用入口 三、小结 低代码开发工具正在日益变得强大,它正不断弥合着前后端…

咨询电商平台API的调用方法!

一、引言 随着电子商务的快速发展,电商平台间的竞争愈加激烈。为了提供更加优质的服务,很多电商平台会开放其商品API数据,允许第三方开发者利用这些数据创建各种应用。本文将对商品API数据的概念、获取方式以及在电商中的应用进行探讨&#…

laravel 阿里云短信发送

示例 一、安装 安装:composer require mrgoon/aliyun-sms dev-master 二、打开config/app.php,添加配置代码 1、‘providers’ 配置组下添加 Mrgoon\Aliyunsms\AliyunsmsServiceProvider::class, 2、‘aliases’ 配置组下添加 Aliyunsms>Mrgoon…

【计算机网络 - 自顶向下方法】计算机网络和因特网

目录 1. What is the Internet? 1.1 因特网的具体构成 1.2 因特网的功能 2. Network core 2.1 基本介绍 2.2 分组交换 2.2.1 序列化时延 2.2.2 排队延迟和丢包 2.2.3 分组交换的优缺点 2.3 电路交换 2.3.1 基本概念 2.3.2 电路交换网络中的复用 2.3.3 电路交换文件…

vue3 封装公共弹窗函数

前言: 博主封装了一个公共弹窗函数接收四个参数,(title:弹窗标题, ContentComponent:弹窗中显示的组件内容, opt:接收弹窗本身的属性和props, beforeSure:点击确定做的操作(请求后端…

《动手学深度学习 Pytorch版》 7.3 网络中的网络(NiN)

LeNet、AlexNet和VGG的设计模式都是先用卷积层与汇聚层提取特征,然后用全连接层对特征进行处理。 AlexNet和VGG对LeNet的改进主要在于扩大和加深这两个模块。网络中的网络(NiN)则是在每个像素的通道上分别使用多层感知机。 import torch fr…

JumpServer开源堡垒机与爱可生云树数据库完成兼容性认证

近日,中国领先的开源软件提供商FIT2CLOUD飞致云宣布,JumpServer开源堡垒机已经完成与爱可生云树数据库软件的兼容性认证。经过双方联合测试,云树数据库软件(简称:ActionDB)V1.0与杭州飞致云信息科技有限公司…

前端提高代码质量-提升代码的可维护性

代码质量是一个非常重要的概念,它决定了代码的可读性、可维护性、可扩展性和稳定性。在前端开发中,提升代码质量可以帮助我们减少错误、提高开发效率、降低维护成本,甚至可以提高用户体验。 在必要的地方加注释 良好的注释可以帮助开发人员理…

使用RKDevTool将update.img完整镜像进行解包,得到单独分区的镜像

(1)使用开发工具高级功能的解包 导入xx.img,然后点击解包(2)在Output/Android/Image得到想要的image

zotero通过DOI快速导入文献

之前我经常采用两种方式导入文献: (1)下载PDF,然后拖入zotero 这种方法比较费时间,有些文献无法下载pdf (2)通过google scholar检索文献,然后点击引用——EndNote,chorme…

HCQ1-1300-D故障笔记

常用查错网址: SMC_ERROR (ENUM) 删除 Web

socket套接字——TCP协议

目录 一、TCP协议相关函数 1.socket、bind函数 2.listen函数 3.accept函数 4.connect函数 二、实现TCP通信 1.服务端实现 (1)服务端类 (2)日志小组件 (3)初始化服务端 (4&#xff09…

etcd的安装和使用

安装及启动 在Mac上,推荐使用brew安装 brew install etcd 可以使用etcd启动服务,但更推荐使用 brew services 来管理使用brew安装的应用~ # 启动某个应用,这里用 etcd 做演示brew services start etcd# 停止某个应用brew services stop etcd#…