返回顶部
首页 > 资讯 > 数据库 >mysql触发器如何写
  • 1796
分享到

mysql触发器如何写

2024-04-02 19:04:59 1796人浏览 泡泡鱼
摘要

这篇文章主要介绍了Mysql触发器如何写,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。触发器是与 mysql 数据表有关的数据库对象,在满足定义

这篇文章主要介绍了Mysql触发器如何写,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

触发器是与 mysql 数据表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。

语法格式如下:

CREATE <触发器名> < BEFORE | AFTER >
<INSERT | UPDATE | DELETE >
ON <表名> FOR EACH Row<触发器主体>

语法说明如下。

1) 触发器名

触发器的名称,触发器在当前数据库中必须具有唯一的名称。如果要在某个特定数据库中创建,名称前面应该加上数据库的名称。

2) INSERT | UPDATE | DELETE

触发事件,用于指定激活触发器的语句的种类。

注意:三种触发器的执行时间如下。INSERT:将新行插入表时激活触发器。例如,INSERT 的 BEFORE 触发器不仅能被 Mysql 的 INSERT 语句激活,也能被 LOAD DATA 语句激活。DELETE: 从表中删除某一行数据时激活触发器,例如 DELETE 和 REPLACE 语句。UPDATE:更改表中某一行数据时激活触发器,例如 UPDATE 语句。

3) BEFORE | AFTER

BEFORE 和 AFTER,触发器被触发的时刻,表示触发器是在激活它的语句之前或之后触发。若希望验证新数据是否满足条件,则使用 BEFORE 选项;若希望在激活触发器的语句执行之后完成几个或更多的改变,则通常使用 AFTER 选项。

4) 表名

与触发器相关联的表名,此表必须是永久性表,不能将触发器与临时表或视图关联起来。在该表上触发事件发生时才会激活触发器。同一个表不能拥有两个具有相同触发时刻和事件的触发器。例如,对于一张数据表,不能同时有两个 BEFORE UPDATE 触发器,但可以有一个 BEFORE UPDATE 触发器和一个 BEFORE INSERT 触发器,或一个 BEFORE UPDATE 触发器和一个 AFTER UPDATE 触发器。

5) 触发器主体

触发器动作主体,包含触发器激活时将要执行的 MySQL 语句。如果要执行多个语句,可使用 BEGIN…END 复合语句结构。

6) FOR EACH ROW

一般是指行级触发,对于受触发事件影响的每一行都要激活触发器的动作。例如,使用 INSERT 语句向某个表中插入多行数据时,触发器会对每一行数据的插入都执行相应的触发器动作。

注意:每个表都支持 INSERT、UPDATE 和 DELETE 的 BEFORE 与 AFTER,因此每个表最多支持 6 个触发器。每个表的每个事件每次只允许有一个触发器。单一触发器不能与多个事件或多个表关联。

另外,在 MySQL 中,若需要查看数据库中已有的触发器,则可以使用 SHOW TRIGGERS 语句。

例子:

BEGIN    
IF new.state  in ('2','3')  then  
  INSERT INTO `userservice`.`ehome_us_green_examine` 
(modifydate,modifyuser,brancCode,stateDescription,state,
userID,fromSystemkey,applydate,makeHospitalName,illnessName,
userName,rightsholderName,tranno) 
VALUES ( sysdate(), 'manage', old.brancCode, old.stateDescription, new.state, 
'', old.fromSystemkey, old.applydate,old.makeHospitalName,old.illnessName,
old.userName,old.rightsholderName, old.tranno);
END IF;  
END

这个触发器比较简单,

1、BEGIN到END,之间是对数据库的操作

2、IF到END IF之间是判断,你想的对,就是如果。。。的意思

3、new.state  in ('2','3') 这句的意思是:该表的字段state为(2或者3)的时候

4、执行下面的插入语句,new为新值,old是原来的值(如old.userName就是原来的这个字段的值)

5、整个触发器翻译成白话就是,如果该表的state变成2或者3的时候,执行下面的插入语句

备注:那么触发器是发生在状态变化之前还是之后呢?选Before或者After,顾名思义!

感谢你能够认真阅读完这篇文章,希望小编分享mysql触发器如何写内容对大家有帮助,同时也希望大家多多支持编程网,关注编程网数据库频道,遇到问题就找编程网,详细的解决方法等着你来学习!

您可能感兴趣的文档:

--结束END--

本文标题: mysql触发器如何写

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

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

猜你喜欢
  • mysql触发器如何写
    这篇文章主要介绍了mysql触发器如何写,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。触发器是与 MySQL 数据表有关的数据库对象,在满足定义...
    99+
    2024-04-02
  • navicat如何写触发器
    这篇文章主要介绍了navicat如何写触发器,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。打开Navicat。打开数据表所在的数据库,右击需...
    99+
    2024-04-02
  • 如何在MySQL中使用PHP编写触发器
    如何在MySQL中使用PHP编写触发器MySQL是一种常用的关系型数据库管理系统,而PHP是一种流行的服务器端脚本语言。在MySQL中使用PHP编写触发器可以帮助我们实现自动化的数据库操作。本文将介绍如何使用PHP来编写MySQL触发器,并...
    99+
    2023-10-22
    MySQL PHP 触发器
  • 如何在MySQL中使用JavaScript编写触发器
    在MySQL中使用JavaScript编写触发器并不支持,MySQL的触发器是使用SQL语言编写的。以下是创建触发器的基本语法:``...
    99+
    2023-10-10
    MySQL
  • sql数据库触发器如何写
    编写SQL数据库触发器可以使用以下语法: CREATE TRIGGER trigger_name {BEFORE | AFTER} ...
    99+
    2023-10-24
    sql数据库
  • 如何使用mysql触发器
    小编这次要给大家分享的是如何使用mysql触发器,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。例子:创建触发器,记录表的增、删、改操作记录//创建user表; DRO...
    99+
    2024-04-02
  • MySQL如何创建触发器
    本文实例为大家分享了MySQL创建触发器的具体代码,供大家参考,具体内容如下 先来个实例: #建表 DROP TABLE IF EXISTS t_attendance; CREATE TABLE...
    99+
    2024-04-02
  • mysql触发器如何实现
    小编给大家分享一下mysql触发器如何实现,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!MySQL触发器语法详解:触发器 tri...
    99+
    2024-04-02
  • mysql触发器如何取消
    这篇“mysql触发器如何取消”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mysql触发...
    99+
    2024-04-02
  • MySQL触发器如何使用
    本文小编为大家详细介绍“MySQL触发器如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“MySQL触发器如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。MySQL&mdash;触发器将两个关...
    99+
    2023-07-05
  • 如何在MySQL中使用Python编写自定义触发器、存储引擎和触发器
    如何在MySQL中使用Python编写自定义触发器、存储引擎和触发器触发器(triggers)是MySQL数据库中的一种特殊类型的存储过程。它们与特定的表相关联,并在表的INSERT、UPDATE或DELETE操作时自动触发并执行一...
    99+
    2023-10-22
    Python MySQL 自定义触发器 (Custom triggers) 存储引擎 (Storage engines)
  • 如何在MySQL中使用PHP编写自定义触发器、存储引擎和触发器
    如何在MySQL中使用PHP编写自定义触发器、存储引擎和触发器引言:MySQL是一个广泛使用的开源关系型数据库管理系统,在数据库开发中,触发器和存储过程是非常重要的概念。本文将重点介绍如何使用PHP编写MySQL中的自定义触发器、存储引擎和...
    99+
    2023-10-22
    关键词: 自定义触发器 存储引擎和触发器 在MySQL中使用PHP。
  • 如何在MySQL中使用JavaScript编写自定义触发器、存储引擎和触发器
    如何在MySQL中使用JavaScript编写自定义触发器、存储引擎和存储过程导读:MySQL是一种广泛使用的关系型数据库管理系统,它使用SQL(结构化查询语言)作为其主要查询语言。然而,MySQL也支持其他编程语言,如JavaScript...
    99+
    2023-10-22
    MySQL 触发器 存储引擎 JavaScript编写 自定义触发器
  • 如何在MySQL中使用C#编写自定义触发器、存储引擎和触发器
    在MySQL中使用C#编写自定义触发器、存储引擎和触发器,需要使用MySQL的Connector/NET,这是一个用于连接MySQL...
    99+
    2023-10-20
    MySQL
  • 如何在MySQL中使用PHP编写自定义存储引擎、触发器和触发器
    在MySQL中使用PHP编写自定义存储引擎、触发器和函数是不可能的,因为MySQL不支持使用PHP作为存储引擎或触发器的编程语言。M...
    99+
    2023-10-20
    MySQL
  • mysql触发器编写模板介绍
    下文给大家带来关于mysql触发器编写模板,感兴趣的话就一起来看看这篇文章吧,相信看完mysql触发器编写模板对大家多少有点帮助吧。mysql的触发器,就是某个表对于insert,delete,u...
    99+
    2024-04-02
  • MySQL中如何创建触发器
    不知道大家之前对类似MySQL中如何创建触发器的文章有无了解,今天我在这里给大家再简单的讲讲。感兴趣的话就一起来看看正文部分吧,相信看完MySQL中如何创建触发器你一定会有所收获的。1. 背景  ...
    99+
    2024-04-02
  • 如何在MySQL中使用Python编写自定义触发器
    如何在MySQL中使用Python编写自定义触发器触发器是MySQL中的一种强大的功能,它可以在数据库中的表上定义一些自动执行的操作。而Python则是一种简洁而强大的编程语言,能够方便地与MySQL进行交互。本文将介绍如何使用Python...
    99+
    2023-10-22
    Python MySQL 触发器
  • 如何编写和执行MySQL存储过程和触发器
    编写和执行MySQL存储过程和触发器可以通过MySQL客户端或者通过SQL脚本来实现。以下是详细的步骤: 创建存储过程: DEL...
    99+
    2024-03-06
    MySQL
  • MySQL | MySQL触发器
    目录 一、创建触发器 1.2 创建只有一个执行语句的触发器 1.2 创建有多个执行语句的触发器 二、查看触发器 2.1 利用SHOW TRIGGERS语句查看触发器信息 2.2 在triggers表中查看触发器信息 三、删除触发器 一、创...
    99+
    2023-09-02
    数据库 sql mysql 数据库开发 数据库架构
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作