iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Mysql中的触发器的语法是什么
  • 565
分享到

Mysql中的触发器的语法是什么

2023-07-02 12:07:33 565人浏览 独家记忆
摘要

这篇文章主要介绍“Mysql中的触发器的语法是什么”,在日常操作中,相信很多人在Mysql中的触发器的语法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql中的触发器的语法是什么”的疑惑有所帮助!

这篇文章主要介绍“Mysql中的触发器的语法是什么”,在日常操作中,相信很多人在Mysql中的触发器的语法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql中的触发器的语法是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1.定义:

  触发器和存储过程相似,都是嵌入到 Mysql 中的一段程序。触发器是由事件来触发某个操作。当数据库执行这些事件时,就会激活触发器来执行相应的操作。这些事件称为触发条件,在MySQL中,有UPDATE,INSERT,和DELETE。

  • 在MySQL中,目前只有UPDATE,INSERT,和DELETE这三种操作,才会触发触发器,其他操作都不支持触发器。这和oracle中的触发器有很大的区别,要注意区分。

  • 触发器的每个表每次事件,都只允许一个触发器。因此,每个表最多值允许有6个触发器。如果一个表有两个事件,INSERT和DELETE,那么就要分别创建一个触发器。

  • 只有表才支持触发器,视图和临时表不支持。

2.语法:

CREATE TRIGGER TRIGGER_NAMEBEFORE/AFTER UPDATE/INSERT/DELETE ON TABLE_NAME FOR EACH ROW#触发器主体[BEGIN]SQL操作[END];
  • 创建触发器:和创建存储过程是一样,用的都是CREATE 语句,但要注意,这里没有 OR REPLACE。

  • TRIGGER_NAME:触发器名称。在MySQL中,要保证每个表中的触发器是唯一的,每一个数据库内的触发器可以不唯一,这就说明了一个数据库内的两个表可以有相同的触发器。这种行为在其他的数据库内是不被允许的。但是为了格式上的规范,还是要尽可能的保证TRIGGER_NAME的唯一性。

  • BEFORE/AFTER:触发器被触发的时刻。你如果希望触发器在触发事件之前发生,就使用BEFORE,如果希望在触发事件之后发生,就使用AFTER。

  • UPDATE/INSERT/DELETE:触发事件,触发条件。在MySQL中,只有这三种DDL操作支持触发器,其他操作都不被允许。

  • FOR EACH ROW:受触发事件影响的每一行都要激活触发器的动作。这里指的是行级触发,在MySQL里,FOE EACH ROW不可省略,不支持语句级触发。

  • 触发器主体:既可以是单独的一条SQL语句,也可以是由BEGIN...END组成的复杂结构块。

# 创建一个触发器T1,在对表customer做插入操作时,就会触发T1,之后会在日志表note中插入一条数据CREATE TRIGGER T1AFTER INSERT ON customerFOR EACH ROW # 触发器主体INSERT INTO note(日期,目标,操作) VALUES(NOW(),'customer','insert');

3.删除触发器

  和删除表和存储过程类似,都是使用DROP语句来删除触发器。

#删除触发器T1DROP TRIGGER IF EXISTS T1;

触发器不能够更新和修改,想要修改一个触发器的内容,只能先将触发器删除,在创建一个新的触发器。

4.查询触发器

#在已知数据库内,查询触发器SHOW TRIGGERS;SELECT * FROM infORMation_schema.TRIGGERS WHERE TRIGGER_NAME = '触发器名'#查询所有的触发器SELECT * FROM information_schema.TRIGGERS(WHERE TRIGGER_SCHEMA = '数据库名')

5.触发器类型OLD和NEW的使用

  触发器在DDL操作之前或者之后触发,总会对目标表做出一定的改动,有时我们需要知道目标表改变前后的值,这就用到了OLD和NEW的用法。

顾名思义,OLD就是改变之前的值,是UPDATE之前或者是要被DELETE或者已经被DELETE的值。

  而NEW,则是UPDATE之后的新值,即将INSERT或者已经INSERT的值。

Mysql中的触发器的语法是什么

  具体实例:

#创建customer表CREATE TABLE `customer` (`CUST_ID` int(11) NOT NULL AUTO_INCREMENT,`CUST_NAME` varchar(10) NOT NULL,`CUST_TEL` varchar(10) DEFAULT NULL,PRIMARY KEY (`CUST_ID`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;#向表中插入数据#创建一个update触发器CREATE TRIGGER T2AFTER UPDATE ON customerFOR EACH ROW #old和new的使用方法:old.columnname/new.columnname(列名)#将更新前后的值,赋值给两个变量SELECT OLD.CUST_ID,NEW.CUST_ID INTO @OLD_ID,@NEW_ID;#触发触发器T2UPDATE customer SET CUST_ID = '10000' WHERE CUST_NAME = 'AAA';#查询OLD和NEWSELECT @OLD_ID,@NEW_ID;

到此,关于“Mysql中的触发器的语法是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: Mysql中的触发器的语法是什么

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

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

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

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

下载Word文档
猜你喜欢
  • Mysql中的触发器的语法是什么
    这篇文章主要介绍“Mysql中的触发器的语法是什么”,在日常操作中,相信很多人在Mysql中的触发器的语法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mysql中的触发器的语法是什么”的疑惑有所帮助!...
    99+
    2023-07-02
  • mysql查询触发器的语句是什么
    这篇文章主要介绍“mysql查询触发器的语句是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mysql查询触发器的语句是什么”文章能帮助大家解决问题。 ...
    99+
    2024-04-02
  • mysql查询触发器的方法是什么
    要查询 MySQL 中的触发器,可以使用以下命令: SHOW TRIGGERS; 这条命令将列出当前数据库中所有的触发器,包括它们...
    99+
    2024-04-22
    mysql
  • mysql触发器指的是什么
    这篇文章主要介绍了mysql触发器指的是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。说明触发器是MySQL向程序员和数据分析员提供保证数据完整性的方法,是与手表事件相关...
    99+
    2023-06-20
  • MySQL的触发器的原理是什么
    这期内容当中小编将会给大家带来有关MySQL的触发器的原理是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、触发器的概念触发器(trigger)是MySQL提供给程...
    99+
    2024-04-02
  • mysql触发器的概念是什么
    本篇内容介绍了“mysql触发器的概念是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • mysql触发器的作用是什么
    本篇内容介绍了“mysql触发器的作用是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!说明在写数据之前,可以强制检查或转换数据等。触发器...
    99+
    2023-06-20
  • Zabbix中的触发器是什么
    Zabbix中的触发器是用来定义在监控项达到某个预定的阈值时触发告警的条件。触发器通常与监控项关联,当监控项的值满足设定的条件时,触...
    99+
    2024-04-02
  • Oracle中的触发器是什么
    在Oracle数据库中,触发器是一种存储在数据库中的特殊类型的PL/SQL程序,它会在指定的表上触发特定的事件时自动执行。这些事件可...
    99+
    2024-04-09
    Oracle
  • 什么是SQLServer中的触发器
    在SQL Server中,触发器是一种特殊的存储过程,它会在特定的数据库操作(如INSERT、UPDATE、DELETE)发生时自动...
    99+
    2024-04-09
    SQLServer
  • mysql触发器作用是什么
    mysql触发器的作用是:1、通过在触发器中定义约束和验证逻辑,可以保证数据的完整性和一致性;2、自动化执行一些常见的数据库操作,减少编写重复代码的工作量;3、记录对数据库表的修改操作,用于审计和追踪数据变更;4、在源数据库上捕获数据更改事...
    99+
    2023-07-25
  • MySQL触发器同步数据库的方法是什么
    MySQL触发器是一种用于在数据库中自动执行特定操作的机制。通过使用触发器,可以在数据库中的特定事件发生时自动更新或同步数据。 要在...
    99+
    2023-10-24
    mysql 数据库
  • mysql触发器的工作原理是什么
    MySQL触发器是一种特殊类型的存储过程,它在指定的事件发生时自动执行。触发器可以在数据库表中的数据发生更改之前、之后或替代发生更改...
    99+
    2023-10-12
    mysql
  • SQL SERVER中各类触发器的完整语法及参数是什么
    这篇文章给大家介绍SQL SERVER中各类触发器的完整语法及参数是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。语法:Trigger on an I...
    99+
    2024-04-02
  • PostgreSQL 中什么是触发器
    这篇文章将为大家详细讲解有关PostgreSQL 中什么是触发器,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、PostgreSQL 触发器是什么?Trigger,是一种由事件自动触发执行...
    99+
    2023-06-14
  • SqlServer中触发器的作用是什么
    这期内容当中小编将会给大家带来有关SqlServer中触发器的作用是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。查询数据库中所有触发器:select&nb...
    99+
    2024-04-02
  • sql创建触发器的方法是什么
    要创建触发器,可以使用以下SQL语法: CREATE TRIGGER trigger_name BEFORE/AFTER INSER...
    99+
    2024-04-23
    sql
  • oracle关闭触发器的方法是什么
    要关闭Oracle触发器,可以使用以下方法之一:1. 使用ALTER TRIGGER语句:使用ALTER TRIGGER语句将触发器...
    99+
    2023-08-09
    oracle
  • 触发器的特点是什么?
    这篇文章给大家分享的是有关触发器的特点是什么?的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。触发器的特点:1、自动执行;触发器在对表的数据作了任何修改之后立即被激活。2、级联更新...
    99+
    2024-04-02
  • Zabbix中的触发器是用来做什么的
    Zabbix中的触发器用来监控主机或服务的状态,并在特定条件满足时产生警报或触发动作。触发器可以根据定义的表达式,比如主机的CPU使...
    99+
    2024-03-11
    Zabbix
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作