`
super_521
  • 浏览: 49722 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

创建Mysql触发器的语法介绍

 
阅读更多
Mysql触发器是Mysql数据库非常重要的部分,下文对创建Mysql触发器及删除Mysql触发器作了详细的介绍,希望对您有所帮助。

1、创建Mysql触发器:

语法:

CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name 
 FOR EACH ROW 
 BEGIN 
 trigger_stmt 
 END;

CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW BEGIN trigger_stmt END;大写的为关键字

trigger_name:Mysql触发器的名字,我常用的命名规则t_name_tableName_(b|a)(i|u|d),t:触发器标识,name:英文名,tableName:表名,

b(BEFORE):标识是触发事件之前,

a(AFTER):标识触发事件之后,

i(insert): 标识insert事件,

u(update):标识update事件,

d(delete):标识delete事件;

trigger_time:触发时间(BEFORE或AFTER)

trigger_event:事件名(insert或update或delete)

tbl_name:表名(必须是永久性表)

trigger_stmt:执行语句(可以是复合语名),使用别名OLD和NEW,能够引用与触发程序相关的表中的列。

2、删除Mysql解发器

语法:

DROP TRIGGER [schema_name.]trigger_name;

注意:以上操作均需SUPER权限

MySQL触发器的创建与删除
下面的文章主要描述的是MySQL触发器的正确创建步骤,MySQL触发器的删除,你如果对MySQL触发器的正确创建步骤,MySQL触发器的删除有兴趣的话你就可以点击以下的文章进行观看了。

1、创建MySQL触发器: 

语法:
CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name   
FOR EACH ROW   
BEGIN   
trigger_stmt   
END;   
CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name  
FOR EACH ROW   
BEGIN  
trigger_stmt  
END;  



例子


CREATE TRIGGER SetUserHome after insert ON users   
FOR EACH ROW   
BEGIN   
update `users` set homeLocationX = 128,  
homeLocationY=128, homeLocationZ=30   
where uuid = NEW.uuid  
END  



以上的例子是错误的, 让本表进行触发时进行更新会让程序进入死循环。


系统会报这样的错误:it is already used by statement which invoked this stored function/trigger.

应该改成以下语句:
CREATE TRIGGER SetUserHome before insert ON users   
FOR EACH ROW   
BEGIN   
set New.homeLocationX = 128;  
set New.homeLocationY = 128;  
set New.homeLocationZ=30;   
END  



大写的为关键字


trigger_name:触发器的名字,我常用的命名规则t_name_tableName_(b|a)(i|u|d),t:MySQL触发器标识,name:英文名,tableName:表名,b(BEFORE):标识是触发事件之前,a(AFTER):标识触发事件之后,i(insert):标识insert事件,u(update):标识update事件,d(delete):标识delete事件;


trigger_time:触发时间(BEFORE或AFTER)


trigger_event:事件名(insert或update或delete)


tbl_name:表名(必须是永久性表)


trigger_stmt:执行语句(可以是复合语名),使用别名OLD和NEW,能够引用与触发程序相关的表中的列。


2、删除解发器

语法:
DROP TRIGGER [schema_name.]trigger_name;  



注意:以上操作均需SUPER权限


示例:
DROP TRIGGER t_wiley_hotelComment_bu;   
delimiter //   
CREATE TRIGGER t_wiley_hotelComment_bu BEFORE UPDATE ON hotel_comment   
FOR EACH ROW   
BEGIN   
IF OLD.ispass=0 && NEW.ispass=1 THEN   
UPDATE hotel_info SET sumcommentsumcomment=sumcomment+1,

sumconsumesumconsume=sumconsume+NEW.consume,sumservicesumservice=sumservice+NEW.service, 

sumroomsumroom=sumroom+NEW.room,sumentironsumentiron=sumentiron+NEW.entironment,

totaltotal=total+(NEW.service+NEW.room+NEW.entironment) WHERE hotel_id=NEW.hotel_id;   
ELSEIF OLD.ispass=1 && NEW.ispass=0 THEN   
UPDATE hotel_info SET sumcommentsumcomment=sumcomment-1,

sumconsumesumconsume=sumconsume-NEW.consume,sumservicesumservice=sumservice-NEW.service, 

sumroomsumroom=sumroom-NEW.room,sumentironsumentiron=sumentiron-NEW.entironment,

totaltotal=total-(NEW.service+NEW.room+NEW.entironment) WHERE hotel_id=NEW.hotel_id;   
END IF;   
END;//   
delimiter ;  



以上的相关内容就是对MySQL触发器的使用的介绍,望你能有所收获。


分享到:
评论

相关推荐

    mysql触发器语法简介[归类].pdf

    mysql触发器语法简介[归类].pdf

    mysql触发器之创建使用触发器简单示例

    本文实例讲述了mysql触发器之创建使用触发器。分享给大家供大家参考,具体如下: 我们可以可以使用CREATE TRIGGER语句创建一个新的触发器,来看下具体的语法: CREATE TRIGGER trigger_name trigger_time trigger_...

    mysql触发器之创建多个触发器操作实例分析

    本文实例讲述了mysql触发器之创建多个触发器操作。分享给大家供大家参考,具体如下: 这次记录的内容mysql 版本必须得是5.7.2+的哈,之前的会不好使的。废话不多说,咱们开始正文哈。 在mysql 5.7.2+版本之前,我们...

    mysql 触发器语法与应用示例

    主要介绍了mysql 触发器语法与应用,结合实例形式详细分析了mysql 触发器的基本语法与插入、更细、删除等相关操作技巧,需要的朋友可以参考下

    MySQL触发器基本用法详解【创建、查看、删除等】

    1、MySQL触发器的创建语法: CREATE [DEFINER = { 'user' | CURRENT_USER }]  TRIGGER trigger_name trigger_time trigger_event ON table_name FOR EACH ROW [trigger_order] trigger_body 2、MySQL创建语法...

    MySQL触发器使用详解

    在MySQL中,创建触发器语法如下: 代码如下: CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt 其中: trigger_name:标识触发器名称,用户自行指定; trigger_...

    mysql 触发器用法实例详解

    MySQL触发器语法详解:  触发器 trigger是一种特殊的存储过程,他在插入(inset)、删除(delete)或修改(update)特定表中的数据时触发执行,它比数据本身标准的功能更精细和更复杂的数据控制能力。触发器不是由...

    MySQL 触发器定义与用法简单实例

    主要介绍了MySQL 触发器定义与用法,结合简单实例形式总结分析了mysql触发器的语法、原理、定义及使用方法,需要的朋友可以参考下

    mysql触发器的作用及语法

    触发器是一种特殊的存储过程,它在插入,删除或修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力。 数据库触发器有以下的作用:

    mysql触发器详解!!!

    触发器有如下作用: 可在写入数据表前,强制检验或转换数据。 触发器发生错误时,异动的结果会被撤销。 部分数据库管理系统可以针对数据定义语言(DDL)使用触发器,称为DDL触发器。 优点: 触发器可通过数据库中的...

    MySQL 触发器详解及简单实例

    MySQL 触发器简单实例 语法 CREATE TRIGGER <触发器名称> –触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和MySQL中其他对象的命名方式基本相象. { BEFORE | AFTER } –触发器有执行的时间设置:...

    Mysql中的触发器简单介绍及使用案例

    两部分组成: 触发器事件发生的时间—–是在监听的表的行为 after before 常用的是after 触发器执行的内容:增删改 创建order 表的时候,需要注意,因为order在mysql中是一个关键字排序,为了避免错误的发生,我们...

    mysql 触发器创建与使用方法示例

    本文实例讲述了mysql 触发器创建与使用方法。分享给大家供大家参考,具体如下: 什么是触发器  触发器用来在某些操作之后/之前,“自动”执行一些操作。(比如插入了新的学生信息,那么在班级表中应该修改学生数)...

    mywebsql-3.2.zip_php mysql 触发器

    MyWebSQL是一个基于Web的MySQL数据库管理客户端,类似phpMyAdmin,但界面更好看。除了操作表格数据外,MyWebSQL还可以对包括视图,存储过程,触发器和函数在内的对象进行控制。支持数据和查询结果的导入\导出。...

    数据库原理及应用MySQL-触发器部分的知识点整理

    数据库原理及应用MySQL中触发器部分有关的知识点整理,包括再MySQL中创建、删除、查看触发器的相关知识点,并包括相关的语法和语句。还有使用触发器应该注意的一些要点。 适合数据库专业的或是计算机相关专业的朋友...

    mysql基本语法

    mysql数据库基本语法,包括正则用法,基本操作,触发器

    MySQL中触发器入门简单实例与介绍

    创建触发器语法如下: CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt 其中trigger_name标识触发器名称,用户自行指定; trigger_time标识触发时机,用before和...

    2021年MySQL高级教程视频.rar

    16.MySQL高级存储过程创建调用查询删除语法.avi 17.MySQL高级存储过程语法变量.avi 18.MySQL高级存储过程语法if判断.avi 19.MySQL高级存储过程语法输入参数.avi 20.MySQL高级存储过程语法输出参数.avi 21.MySQL高级...

Global site tag (gtag.js) - Google Analytics