广告
返回顶部
首页 > 资讯 > 数据库 >【MySQL触发器】触发器的使用、创建、修改及删除
  • 899
分享到

【MySQL触发器】触发器的使用、创建、修改及删除

mysql数据库sqldatabase 2023-09-17 18:09:21 899人浏览 独家记忆
摘要

目录 一、什么是触发器 二、创建触发器 ①创建一个insert事件触发器 ②创建一个delete 事件触发器  三、触发器包含多条执行语句 四、查看触发器  ①SHOW TRIGGERS语句查看触发器 ②查看系统表triggers实现查看触

目录

一、什么是触发器

二、创建触发器

①创建一个insert事件触发器

②创建一个delete 事件触发器 

三、触发器包含多条执行语句

四、查看触发器 

①SHOW TRIGGERS语句查看触发器

②查看系统表triggers实现查看触发器  

五、触发器的删除 


一、什么是触发器

     当我们对一个表进行数据操作时,需要同步对其它的表执行相应的操作,正常情况下,如果我们使用sql语句进行更新,将需要执行多条操作语句!

    触发器(TRIGGER)是由事件来触发某个操作。这些事件包括INSERT语句、UPDATE语句和DELETE语句。当数据库系统执行这些事件时,就会激活触发器执行相应的操作。Mysql从5.0.2版本开始支持触发器。

二、创建触发器

    在mysql中创建触发器通过SQL语句CREATE TRIGGER来实现,其语法形式如下: 

CREATE trigger trigger_name BEFORE|AFTER trigger_EVENT     ON TABLE_NAME FOR EACH ROW trigger_STMT 
  • 参数trigger_name表示要创建的触发器名;
  • 参数BEFORE和AFTER指定了触发器执行的时间,前者在触发器事件之前执行触发器语句,后者在触发器事件之后执行触发器语句;
  • 参数trigger_EVENT表示触发事件,即触发器执行条件(触发事件),包含DELETE、INSERT和UPDATE语句;
  • 参数TABLE_NAME表示触发事件的操作表名;
  • 参数FOR EACH ROW表示任何一条记录上的操作满足触发事件都会触发该触发器;
  • 参数trigger_STMT(sql语句)表示激活触发器后被执行的语句。执行语句中如果要引用更新记录中的字段,对于INSERT语句,只有NEW是合法的,表示当前已插入的记录;对于DELETE语句,只有OLD才合法,表示当前删除的记录;而UPDATE语句可以和NEW(更新后)以及OLD(更新前)同时使用。

注意:

  1. 不能创建具有相同名字的触发器。
  2. 对于具有相同触发程序动作时间和事件的给定表,不能有两个触发器(比如after insert插入之后有一个触发器那么就不能再有触发器是after的了,但是before insert是可以的)。

因此,在创建触发器之前,需要查看MySQL中是否已经存在该标识符的触发器和触发器的相关事件。 

    例如,对下面的class班级表和student学生表之间创建触发器,要求当student表中插入学生数据时,班级表同步更新班级人数:


①创建一个insert事件触发器

    对于insert事件,使用new才表示插入的记录,因此这里要使用class.id=new.class_id; 

create trigger tri_insert_student after insert     on student for each row     update class set count=count+1 where class.id=new.class_id;

     插入一些记录

insert into student     values(1,'小花',101,'M'),          (2,'小红',102,'F'),          (3,'小军',102,'F'),          (4,'小白',101,'F');

    class表的count字段也跟着跟新了。


②创建一个delete 事件触发器 

    对于delete事件,使用old才表示删除的记录

create trigger tri_delete_student after delete on student for each row update class set count=count-1 where old.class_id=class.id;

    删除一条记录

三、触发器包含多条执行语句

CREATE   trigger trigger_name BEFORE|AFTER trigger_EVENT     ON TABLE_NAME FOR EACH ROW         BEGIN        trigger_STMT                         END; 

    在上述语句中,比“只有一条执行语句的触发器”语法多出来两个关键字BEGIN和END,在这两个关键字之间是所要执行的多个执行语句的内容,执行语句之间用分号隔开。

    在MySQL中,一般情况下用“;”符号作为语句的结束符号,可是在创建触发器时,需要用到“;”符号作为执行语句的结束符号。为了解决该问题,可以使用关键字DELIMITER语句。例如,"DELIMITER  $'$"可以将结束符号设置成“$$”。

    例如,再添加一张如下的score表,每次student表增删时同步到score表和class表

DELIMITER $$   #将分号“;”声明为“$$”    create trigger tri_delete_student after delete on student for each row     BEGIN                Delete from grade where id = OLD.id;  #删除成绩表中的记录        update class set count=count-1 where id = OLD.class_id; #更新班级表中的记录       END; #分号要有       $$           DELIMITER ;  #再将分号声明回来

四、查看触发器 

①SHOW TRIGGERS语句查看触发器

    查看MySQL软件中已经存在的触发器。在MySQL软件中查看已经存在的触发器,通过SQL语句SHOW 语句来实现,其语法形式如下:

SHOW TRIGGERS ;


②查看系统表triggers实现查看触发器  

    在MySQL中,在系统数据库infORMation_schema中存在一个存储所有触发器信息的系统表triggers,因此查询该表格的记录也可以实现查看触发器功能。系统表triggers的表结构

use information_schema;   #选择数据库information_schema                  select * from triggers;select * from triggers where trigger_name='tri_delete_student'; #查询系统表triggers中的触发器   

五、触发器的删除 

在MySQL中,删除触发器可以通过SQL语句DROP TRIGGER来实现,其语法形式如下: 

DROP TRIGGER trigger_name; 
  • 参数trigger_name表示所要删除的触发器名称。 

🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀 

来源地址:https://blog.csdn.net/qq_54169998/article/details/122720159

您可能感兴趣的文档:

--结束END--

本文标题: 【MySQL触发器】触发器的使用、创建、修改及删除

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

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

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

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

下载Word文档
猜你喜欢
  • 【MySQL触发器】触发器的使用、创建、修改及删除
    目录 一、什么是触发器 二、创建触发器 ①创建一个insert事件触发器 ②创建一个delete 事件触发器  三、触发器包含多条执行语句 四、查看触发器  ①SHOW TRIGGERS语句查看触发器 ②查看系统表triggers实现查看触...
    99+
    2023-09-17
    mysql 数据库 sql database
  • MySQL触发器如何创建与删除
    这篇文章主要介绍“MySQL触发器如何创建与删除”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL触发器如何创建与删除”文章能帮助大家解决问题。1.为什么需要...
    99+
    2022-10-19
  • 触发器的概念及其语法/创建触发器/查看以及删除
    触发器可以简单理解一种特殊的存储过程,之前存储过程的变量定义及流程语句同样适合触发器,唯一不同的是我们只需要定义触发器,而不用手动调用触发器。从事件触发的角度来说,触发器编写的过程就是触发事件定义的过程,因为触发器定义好后会随着数据库操作命...
    99+
    2021-11-25
    触发器的概念及其语法/创建触发器/查看以及删除
  • SQLServer触发器创建删除和修改及查看的代码怎么写
    这篇文章给大家介绍SQLServer触发器创建删除和修改及查看的代码怎么写,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一: 触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表...
    99+
    2022-10-18
  • mysql触发器简介、创建触发器及使用限制分析
    本文实例讲述了mysql触发器简介、创建触发器及使用限制。分享给大家供大家参考,具体如下: 简介 SQL触发器是存储在数据库目录中的一组SQL语句。每当与表相关联的事件发生时,即会执行或触发SQL触发器,例...
    99+
    2022-10-18
  • mysql删除触发器的方法
    mysql删除触发器的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!mysql删除触发器的方法:直接执行【drop t...
    99+
    2022-10-18
  • mysql触发器之触发器的增删改查操作示例
    本文实例讲述了mysql触发器之触发器的增删改查操作。分享给大家供大家参考,具体如下: 我们在创建触发器后,可以在包含触发器定义文件的数据文件夹中显示其定义。触发器作为纯文本文件存储在以下数据库文件夹中: ...
    99+
    2022-10-18
  • MySQL触发器基本用法详解【创建、查看、删除等】
    本文实例讲述了MySQL触发器基本用法。分享给大家供大家参考,具体如下: 一、MySQL触发器创建: 1、MySQL触发器的创建语法: CREATE [DEFINER = { 'user' | CURRENT...
    99+
    2022-05-29
    MySQL 触发器
  • 怎么创建和使用mysql触发器
    这篇文章主要讲解了怎么创建和使用mysql触发器,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。什么是触发器 触发器用来在某些操作之后/之前,“自动”执行一些操作。(比...
    99+
    2022-10-18
  • MySQL触发器怎么创建和使用
    这篇文章主要介绍“MySQL触发器怎么创建和使用”,在日常操作中,相信很多人在MySQL触发器怎么创建和使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL触发器怎么...
    99+
    2022-10-19
  • 怎么创建MySQL的TRIGGER触发器
    这篇文章主要讲解了“怎么创建MySQL的TRIGGER触发器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么创建MySQL的TRIGGER触发器”吧!My...
    99+
    2022-10-18
  • mysql触发器之创建多个触发器操作的示例分析
    这篇文章将为大家详细讲解有关mysql触发器之创建多个触发器操作的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。这次记录的内容mysql 版本必须得是5.7.2+...
    99+
    2022-10-18
  • 如何删除mysql数据库的触发器
    小编给大家分享一下如何删除mysql数据库的触发器,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!在mysql中,可以使用“DROP TRIGGER”语句来删除已经定义的触发器,语法格式...
    99+
    2022-10-18
  • mysql 触发器创建与使用方法示例
    本文实例讲述了mysql 触发器创建与使用方法。分享给大家供大家参考,具体如下: 什么是触发器  触发器用来在某些操作之后/之前,“自动”执行一些操作。(比如插入了新的学生信息,那么在班级表中应该修改...
    99+
    2022-05-16
    mysql 触发器
  • MYSQL触发器的使用
    概念:触发器是一种特殊的储存过程,在满足定义条件操作时触发,并且自动执行触发器中预先设定好的定义的语句集合 触发器是特殊的储存过程 触发器是在对表操作时,满足条件就可以自动调用预先编译的sql语句 安全性 可以基于数据库的值使用户...
    99+
    2021-10-21
    MYSQL触发器的使用
  • mysql 触发器的使用及注意点
    目录前言一、触发器简介二、触发器特点及使用场景1、增强数据库的安全性2、实现数据库操作的日志审计3、实现复杂的级联操作三、触发器类似与核心参数四、触发器语法1、创建语法2、查看触发器...
    99+
    2022-11-13
    mysql 触发器使用 mysql 触发器
  • 如何实现MySQL中删除触发器的语句?
    如何实现MySQL中删除触发器的语句?在MySQL数据库中,触发器(Trigger)是一种与表相关联的特殊类型的存储过程,它能在表发生特定的操作时被自动触发执行。MySQL提供了创建和删除触发器的语法,通过删除已存在的触发器,我们可以灵活地...
    99+
    2023-11-08
    MySQL 删除触发器
  • MySQL触发器trigger的使用
    Q:什么是触发器?A:  触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的特性:  1、有begin end体,begin end;之间的语句可以写的简单或者复杂 ...
    99+
    2022-10-18
  • 使用MySQL触发器的教程
    下文主要给大家带来使用MySQL触发器的教程,希望这些内容能够带给大家实际用处,这也是我编辑使用MySQL触发器的教程这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。MySQL包含对触发器的支持。触...
    99+
    2022-10-18
  • 使用mysql触发器的方法
    这篇文章主要讲解了使用mysql触发器的方法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。什么是触发器:触发器用来在某些操作之后,“自动”执行一些操作。(比如插入了新的学生信息...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作