`
suchj
  • 浏览: 146191 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MySQL触发器的创建与删除<转>

    博客分类:
  • sql
阅读更多
原文出处:http://database.51cto.com/art/201005/200548.htm

摘要:以下的文章主要介绍的是MySQL触发器的正确创建步骤,以及MySQL触发器的删除,以下就是具体内容的描述,希望在你今后的学习中会有所帮助。
标签: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 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

    &lt;br&gt;5.6 怎样处理没有提交/回卷(COMMIT / ROLLBACK) &lt;br&gt;6 MySQL 存取权限系统 &lt;br&gt;6.1 权限系统做什么 &lt;br&gt;6.2 MySQL用户名和口令 &lt;br&gt;6.3 与MySQL服务器连接 &lt;br&gt;6.4 使你的口令安全 &lt;br&gt;6.5 MySQL 提供的权限 ...

    MySQL中文参考手册.chm

    &lt;br/&gt;5.4.4 存储过程和触发器 &lt;br/&gt;5.4.5 外键(Foreign Keys)&lt;br/&gt;5.4.5.1 不使用外键的理由 &lt;br/&gt;5.4.6 视图(Views) &lt;br/&gt;5.4.7 '--'作为一个 注解的开始 &lt;br/&gt;5.5 MySQL 遵循什么标准? &lt;br/&gt;5.6 怎样处理没有提交...

    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_...

    mysql触发器简介、创建触发器及使用限制分析

    本文实例讲述了mysql触发器简介、创建触发器及使用限制。分享给大家供大家参考,具体如下: 简介 SQL触发器是存储在数据库目录中的一组SQL语句。每当与表相关联的事件发生时,即会执行或触发SQL触发器,例如插入,...

    MySQL 触发器的基础操作(六)

    触发器的操作包含创建、查看、删除。   触发器是数据库对象之一,该对象与编程语言 中的函数非常类似,都需要声明、执行等。但是触发器的执行不是由程序调用,也不是由手工启动,而是由事件来触发、激活从而实现...

    MySQL触发器

    介绍了MySQL触发器的相同内容。包括触发器的创建、删除,使用和测试过程

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

    本文实例讲述了MySQL 触发器定义与用法。分享给大家供大家参考,具体如下: 语法 CREATE TRIGGER 触发器名称 –触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和MySQL中其他对象的命名方式基本相象. { ...

    MySQL 触发器详解及简单实例

    MySQL 触发器简单实例 语法 CREATE TRIGGER &lt;...表名称&gt; –触发器是属于某一个表的:当在这个表上执行插入、 更新或删除操作的时候就导致触发器的激活. 我们不能给同一张表的同一个事件安排两个触发器

    MySQL触发器简单用法示例

    主要介绍了MySQL触发器简单用法,结合实例形式分析了mysql触发器的创建、执行、查看、删除等相关操作技巧,需要的朋友可以参考下

    mysql触发器原理与用法实例分析

    本文实例讲述了mysql触发器原理与用法。分享给大家供大家参考,具体如下: 本文内容: 什么是触发器 创建触发器 单条触发器语句 多条触发器语句 查看触发器 删除触发器 触发器的新旧记录引用 首发日期:2018-...

    mysql 触发器用法实例详解

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

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

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

    MySQL 5.5从零开始学-part1

    特别注意:&lt;&lt;MySQL 5.5从零开始学&gt;&gt;电子书共分为两部分,这是&lt;&lt;MySQL 5.5从零开始学&gt;&gt;的第一部分。请下载完两部分后,再解压缩文件! 《MYSQL 5.5从零开始学》主要包括MySQL的安装与配置、数据库的创建、数据表的...

    如何使用触发器管理MySQL数据库

    在SQL中,名词触发器指“在数据库中为响应...在本文中将简单介绍如何定义并使用触发器,查看触发器状态,并如何在使用完毕后删除触发器。还将为你展示一个触发器在现实世界中的应用实例,并检验它对数据库记录的改变。

    mysql触发器,游标

    整篇文章为个人学习心得,之后会持续发表mysql高级进阶,javaweb框架等知识点文章,制作不易,加个关注 触发器: 是和表关联的特殊的存储过程,可以再插入,删除,修改表中的数据时触发执行 优点: 安全性,审计...

    MySQL系列—-存储过程、触发器

    MySQL系列—-存储过程、触发器存储过程创建一个存储过程,使得结果输出两个数的和执行存储过程,计算38加上26的和触发器在student表中创建删除触发器ctr_del查看触发器ctr_del的一般信息和文本信息删除学号为...

    详解MySQL数据库之触发器

    MySQL触发器和存储过程一样,都是嵌入到MySQL的一段程序。触发器是由事件来触发某个操作,这些事件包括INSERT、UPDATE、DELETE。如果定义了触发器,当数据库执行这些语句的时候就会激活触发器执行相应的操作,触发...

    MYSQL设置触发器权限问题的解决方法

    本文实例讲述了MYSQL设置触发器权限的方法,针对权限错误的情况非常实用。具体分析如下: mysql导入数据提示没有SUPER Privilege权限处理,如下所示: ERROR 1419 (HY000): You do not have the SUPER Privilege ...

Global site tag (gtag.js) - Google Analytics