`
froast
  • 浏览: 252288 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

在mysql中使用触发器

阅读更多

MYSQL是在5.0以后的版本中引入触发器的。

有的时候,可以用触发器来维护数据的完整性。如我有一个表ge_element,该表中有一个region_id,对应到ge_region表中的id,但是,region_id是可以为空的,所以不应该设置外键约束,而我在删除ge_region表中的记录时,希望把在ge_element表中被引用到的记录的region_id设为0,因为没有数据库的外键约束,我只能在程序中操作,但我又不想通过程序来操作,因为引用region_id的表可能不只ge_element一个,这时,就可能用到触发器,在删除ge_region表中的记录时,把被引用的表中的region_id设为0。

1.创建触发器的语句:

CREATE TRIGGER <触发器名称> <--
{ BEFORE | AFTER }
{ INSERT | UPDATE | DELETE }
ON <表名称>
FOR EACH ROW
<触发器SQL语句>

  触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和MySQL中其他对象的命名方式基本相象.

  这里我有个习惯:就是用表的名字+'_'+触发器类型的缩写.因此如果是表t26,触发器是在事件UPDATE(参考下面的点(2)和(3))之前(BEFORE)的,那么它的名字就是t26_bu。

可以直接在EMS中创建触发器。

 

2.触发时间:

Before表示在事件发生之前执行触发器,After表示在事件发生之后执行触发器;

 

3.触发事件:

三个事件:insert, update, delete

 

4.触发器与表的关系:

触发器是属于一个表的,当在这个表上执行insert, update, delete操作时,就会导致相应的触发器被激活;

不能给同一个表的同一个操作创建两个不同的触发器。

 

5.触发间隔:

FOR EACH ROW 子句通知触发器每隔一行执行一次动作,而不是对整下表执行一次。

 

6.触发的SQL语句:

触发器包含所要触发的SQL语句:这里的语句可以是任何合法的语句,包括复合语句,但是这里的语句受的限制和函数的一样。

复合语句(BEGIN / END)是合法的.

流控制(Flow-of-control)语句(IF, CASE, WHILE, LOOP, WHILE, REPEAT, LEAVE,ITERATE)也是合法的.

变量声明(DECLARE)以及指派(SET)是合法的.

允许条件声明.

异常处理声明也是允许的.

但是在这里要记住函数有受限条件:不能在函数中访问表.因此在函数中使用以下语句是非法的。

 

7.创建触发器的权限:

你必须要有相当大的权限才能够创建触发器;我在创建触发器的时候提示要有super privilege才可以创建;

分享到:
评论

相关推荐

    mysql中触发器使用详解.docx

    触发器是与表有关的数据库对象,在对表进行insert/update/delete之前或之后,会触发并执行触发器中定义的SQL语句。触发器的这种特性可以协助应用在数据库端确保数据的完整性,记录日志,校验数据等。

    mysql触发器使用

    mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql...

    mysql触发器之触发器的增删改查操作示例

    主要介绍了mysql触发器之触发器的增删改查操作,结合实例形式分析了mysql触发器的定义及使用触发器进行增删改查等相关操作技巧,需要的朋友可以参考下

    mysql数据库触发器,外键约束模式知识点

    内包含外键约束模式,数据库的视图基本操作

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

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

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

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

    Mysql触发器介绍

    介绍了mysql触发器的一些概念及一些使用案例

    MYSQL触发器教程.doc

    该抛弃旧的MySQL的手册了我在这里警告大家不要相信过去的MySQL手册中所说的了。我们已经去掉了关于触发器的错误的语句,但是仍旧有很多旧版本的手册在网上,举个例子,这是一个德国的Url上的: ...

    MySQL 5.0 触发器.rar

    MySQL 5.0 触发器

    MYSQL触发器使用详解

    MYSQL触发器,可以使用它用来进行监控,例如商品价格变化,下单后商品库存减少等实用性操作!

    Oracle使用触发器和mysql中使用触发器的案例比较

     举例:论坛的发帖,每插入一个帖子都希望将版面表中的最后发帖时间,帖子总数字段进行同步更新,这时使用触发器效率会很高。 二、Oracle 使用 PL/SQL 编写触发器 1.–PL/SQL创建触发器的一般语法 create [or ...

    MySQL数据库面试题.pdf

    以下是针对MySQL数据库的60个面试题,涵盖了数据库设计、SQL查询、性能优化、...16. 如何在MySQL中使用触发器(Trigger)? 17. 解释存储过程和它的优缺点。 18. 如何用SQL更新同一表内的两个列的值? 19. 解释如何使用

    MySQL触发器.pdf

    MySQL触发器.pdfMySQL触发器.pdfMySQL触发器.pdfMySQL触发器.pdf

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

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

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

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

    MySQL触发器.rar

    MySQL触发器

    mysql-事件,触发器,事务-实验七.docx

    mysql事件,触发器,事务

    mysql com组件触发器代码

    mysql com组件触发器代码备着急用

    mysql 触发器文档

    学习mysql触发器的好东西

Global site tag (gtag.js) - Google Analytics