广告
返回顶部
首页 > 资讯 > 数据库 >MySQL | MySQL触发器
  • 699
分享到

MySQL | MySQL触发器

数据库sqlmysql数据库开发数据库架构 2023-09-02 13:09:42 699人浏览 薄情痞子
摘要

目录 一、创建触发器 1.2 创建只有一个执行语句的触发器 1.2 创建有多个执行语句的触发器 二、查看触发器 2.1 利用SHOW TRIGGERS语句查看触发器信息 2.2 在triggers表中查看触发器信息 三、删除触发器 一、创

目录

一、创建触发器

1.2 创建只有一个执行语句的触发器

1.2 创建有多个执行语句的触发器

二、查看触发器

2.1 利用SHOW TRIGGERS语句查看触发器信息

2.2 在triggers表中查看触发器信息

三、删除触发器


一、创建触发器

触发器是一个特殊的存储过程,不同的是,执行存储过程要使用CALL语句来调用,而触发器的执行不需要CALL语句来调用,也不需要手工启动,只要当一个预定义的事件发生的时候,就会被Mysql自动调用。

1.2 创建只有一个执行语句的触发器

创建一个触发器的语法如下:

CREATE TRIGGER tigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt

其中,trigger_name表示触发器名称,用户自行指定;trigger_time表示触发时机,可以指定为before或after;trigger_event表示触发事件,包括INSERT、UPDATE和DELECT;tbl_name表示建立触发器的表名,即在哪张表上建立触发器;trigger_stmt是触发器执行语句。

例:创建一个单执行语句的触发器。首先创建一个account表,表中有两个字段,分别为acct_num字段(定义为int类型)和amount字段(定义为浮点类型);其次,创建一个ins_sum的触发器,触发的条件是向数据表account插入数据之前,对新插入的amount字段值进行求和计算。代码如下:

CREATE TABLE account (acct_num INT,amount DECIMAL(10,2));CREATE TRIGGER ins_num BEFORE INSERT ON account FOR EACH ROW SET @num=@num+NEW.amount;SET @num=0;INSERT INTO account VALUES(1,1.00),(2,2.00);SELECT @num;

结果如下:

@num
3.00

  

1.2 创建有多个执行语句的触发器

创建有多个执行语句的触发器的语法如下 :

CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW BEGIN语句执行列表END

例:创建一个包含多个执行语句的触发器,代码如下:

CREATE TABLE test1 (a1 INT);CREATE TABLE test2 (s2 INT);CREATE TABLE test3 (a3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY);CREATE TABLE test4 (a4 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,b4 INT DEFAULT 0);DELIMITER //CREATE TRIGGER testref BEFORE INSERT ON test1FOR EACH ROW BEGIN INSERT INTO test2 SET a2=NEW.a1;DELETE FROM test3 WHERE a3=NEW.a1;UPDATE test4 SET b4=b4+1 WHERE a4=NEW.a1;END//DELIMITER;INSERT INTO test3 (a3) VALUES(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL);INSERT INTO test4 (a4) VALUES(0),(0),(0),(0),(0),(0),(0),(0),(0),(0);INSERT INTO test1 VALUES(1),(3),(1),(7),(1),(8),(4),(4);

最后四个表的数据如下:

a1
1
3
1
7
1
8
4
4

  

a2
1
3
1
7
1
8
4
4
a3
2
5
6
9
10
a4b4
13
20
31
42
50
60
71
81
90
100

二、查看触发器

2.1 利用SHOW TRIGGERS语句查看触发器信息

SHOW TRIGGERS;或SHOW TRIGGERS \G

2.2 在triggers表中查看触发器信息

mysql中,所有触发器的定义都存在INFORMATioN_SCHEMA数据库的TRIGGER表格中,可以通过查询SELECT查看,具体的语法如下:

SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE condition;

例:

SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_NAME='trig_update'\G

也可以不指定触发器名称,这样讲查看所有的触发器,命令如下:

SELECT * FROM INFORMATION_SCHEMA.TRIGGERS \G

三、删除触发器

使用DROP TRIGGER语句可以删除Mysql中已经定义的触发器,删除触发器语句的基本语法格式如下:

DROP TRIGGER [schema_name.]trigger_name

其中,schema_name表示数据库名称,是可选的。如果省略了schema,将从当前数据库中舍弃触发程序;trigger_name是要删除的触发器的名称。

例:删除一个触发器,代码如下:

DROP TRIGGER tset_db.ins_sum;

来源地址:https://blog.csdn.net/m0_70452407/article/details/130039267

您可能感兴趣的文档:

--结束END--

本文标题: MySQL | MySQL触发器

本文链接: https://www.lsjlt.com/news/390852.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL | MySQL触发器
    目录 一、创建触发器 1.2 创建只有一个执行语句的触发器 1.2 创建有多个执行语句的触发器 二、查看触发器 2.1 利用SHOW TRIGGERS语句查看触发器信息 2.2 在triggers表中查看触发器信息 三、删除触发器 一、创...
    99+
    2023-09-02
    数据库 sql mysql 数据库开发 数据库架构
  • MySQL——触发器
    基本语法 //创建触发器 CREATE TRIGGER name //删除触发器 DROP TRIGGER name 创建触发器 在创建触发器时需要给出4条信息 唯一的触发器名 触发器需要关联的表 触发器应该响应...
    99+
    2020-02-06
    MySQL——触发器
  • MySQL-触发器
    一、触发器 触发器(TRIGGER)是MySQL的数据库对象之一,从5.0.2版本开始支持。该对象与编程语言中的函数非常类似,都需要声明、执行等。但是触发器的执行不是由程序调用,也不是由手工启动,而是由事件...
    99+
    2022-10-18
  • MySQL触发器
    1、 触发器定义: 触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进...
    99+
    2019-06-10
    MySQL触发器
  • MySQL 触发器
    文章目录 1.简介2.行级与语句级触发器3.触发时机4.触发器优缺点5.创建触发器语法示例 6.查看触发器7.删除触发器参考文献 1.简介 触发器(Trigger)是与表关联的命名数据库对象,当表发生特定事件时激活。 触发器...
    99+
    2023-08-30
    mysql 触发器
  • mysql之触发器
           触发器是一种 特殊的存储过程,不同的是存储过程要用CALL来调用,而触发器不需要使用CALL也不需要手工启动,只要当一个预...
    99+
    2022-10-18
  • mysql触发器(trigger)
    触发器的作用 监听数据的变化,以实现当数据变化时的关联操作,不过感觉没有实际作用,触发器的功能如果用代码逻辑来控制感觉会更正规些,毕竟团队中的其它人不一定会看到你定义的触发器,但一定能看到你的代码。那为何还...
    99+
    2022-10-18
  • MySQL(89)MySQL查看触发器
    MySQL查看触发器 查看触发器是指查看数据库中已经存在的触发器的定义、状态和语法信息等。MySQL 中查看触发器的方法包括 SHOW TRIGGERS 语句和查询 information_schema 数据库下的 triggers 数据表...
    99+
    2023-10-25
    mysql 数据库 sql
  • MySQL进阶——触发器
    1.触发器定义 同存储过程和函数类似,MySQL中的触发器也是存储在系统内部的一段程序代码,可以把它看作是一个特殊的存储过程。所不同的是,触发器无需人工调用,当程序满足定义条件时就会被MySQL自动调用。这些条件可以称为触发事件,包括INS...
    99+
    2023-10-28
    数据库
  • Mysql中的触发器
      阅读目录 什么是触发器 特点及作用 例子:创建触发器,记录表的增、删、改操作记录 弊端 什么是触发器 简单的说,就是一张表发生了某件事(插入、删除、更新操作),然后自动触发了预先编写好的若干条SQL语句的执行; 特点及...
    99+
    2018-09-20
    Mysql中的触发器
  • 十一、MySQL触发器
      MySQL的触发器和存储过程一样,都是嵌入到MySQL的一段程序。触发器是由时间来触发某个操作,这些时间包括INSERT、UODATE和DELETE语句。如果定义了触发程序,当数据库执...
    99+
    2022-10-18
  • mysql触发器怎么用
    这篇文章给大家分享的是有关mysql触发器怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。说明触发器也是存储过程程序的一种,而触发器内部的执行SQL语句是可以多行操作的。在MySQL的存储过程程序中,要定义结...
    99+
    2023-06-20
  • MYSQL触发器的使用
    概念:触发器是一种特殊的储存过程,在满足定义条件操作时触发,并且自动执行触发器中预先设定好的定义的语句集合 触发器是特殊的储存过程 触发器是在对表操作时,满足条件就可以自动调用预先编译的sql语句 安全性 可以基于数据库的值使用户...
    99+
    2021-10-21
    MYSQL触发器的使用
  • MySQL触发器之初见
    触发器 语法 CREATE TRIGGER trigger_name trigger_time trigger_event NO table_name FOR EACH ROW trigger_stmt trigger_name: ...
    99+
    2014-11-27
    MySQL触发器之初见
  • mysql基础三 触发器
    商品表-- Table "goods" DDL: CREATE TABLE goods (gid int(11) NOT NULL,name varchar(20) DEFAU...
    99+
    2022-10-18
  • mysql触发器如何写
    这篇文章主要介绍了mysql触发器如何写,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。触发器是与 MySQL 数据表有关的数据库对象,在满足定义...
    99+
    2022-10-18
  • mysql有没有触发器
    这篇文章主要介绍“mysql有没有触发器”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mysql有没有触发器”文章能帮助大家解决问题。 ...
    99+
    2022-10-19
  • MySQL数据库 触发器 trigger
    目录一、基本概念1、作用2、触发器的优缺点2.1、优点2.2、缺点二、创建触发器1、基本语法2、触发对象3、触发时机4、触发事件5、注意事项三、查看触发器四、触发触发器五、删除触发器六、触发器的应用1、完善2、优化一、基...
    99+
    2022-06-16
    MySQL trigger 触发器trigger
  • MySQL触发器了解一下
    简介 触发器是与表有关的数据库对象,当表发生INSERT/UPDATE/DELETE操作时,对应操作的触发器会被触发,将在这些操作之前或之后执行触发器中定义的SQL语句集合。 触发器的使用 创建触发器 语法: CREATE [DE...
    99+
    2019-06-16
    MySQL触发器了解一下
  • 怎么使用MySQL触发器
    这篇文章主要讲解了怎么使用MySQL触发器,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。一、MySQL触发器创建:1、MySQL触发器的创建语法:CREATE [DEFINER...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作