教程:MYSQL创建触发程序的方法

ok小可22

ok小可22

2016-02-19 15:29

图老师设计创意栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享教程:MYSQL创建触发程序的方法的教程,热爱PS的朋友们快点看过来吧!

刚刚弄懂了MYSQL的创建触发程序。

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

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  文字说明第一次看的时候不是很明白,但是最后面的看一下例子就差不多了!

  触发程序是与表有关的命名数据库对象,当表上出现特定事件时,将激活该对象。

  触发程序与命名为tbl_name的表相关。tbl_name必须引用永久性表。不能将触发程序与TEMPORARY表或视图关联起来。

  trigger_time是触发程序的动作时间。它可以是BEFORE或AFTER,以指明触发程序是在激活它的语句之前或之后触发。

  trigger_event指明了激活触发程序的语句的类型。trigger_event可以是下述值之一:

  · INSERT:将新行插入表时激活触发程序,例如,通过INSERT、LOAD DATA和REPLACE语句。

  · UPDATE:更改某一行时激活触发程序,例如,通过UPDATE语句。

  · DELETE:从表中删除某一行时激活触发程序,例如,通过DELETE和REPLACE语句。

  请注意,trigger_event与以表操作方式激活触发程序的SQL语句并不很类似,这点很重要。例如,关于INSERT的BEFORE触发程序不仅能被INSERT语句激活,也能被LOAD DATA语句激活。

  可能会造成混淆的例子之一是INSERT INTO .. ON DUPLICATE UPDATE ...语法:BEFORE INSERT触发程序对于每一行将激活,后跟AFTER INSERT触发程序,或BEFORE UPDATE和AFTER UPDATE触发程序,具体情况取决于行上是否有重复键。

  对于具有相同触发程序动作时间和事件的给定表,不能有两个触发程序。例如,对于某一表,不能有两个BEFORE UPDATE触发程序。但可以有1个BEFORE UPDATE触发程序和1个BEFORE INSERT触发程序,或1个BEFORE UPDATE触发程序和1个AFTER UPDATE触发程序。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  trigger_stmt是当触发程序激活时执行的语句。如果你打算执行多个语句,可使用BEGIN ... END复合语句结构。这样,就能使用存储子程序中允许的相同语句。

  使用别名OLD和NEW,能够引用与触发程序相关的表中的列。OLD.col_name在更新或删除它之前,引用已有行中的1列。NEW.col_name在更新它之后引用将要插入的新行的1列或已有行的1列。

  激活触发程序时,对于触发程序引用的所有OLD和NEW列,需要具有SELECT权限,对于作为SET赋值目标的所有NEW列,需要具有UPDATE权限。

  注释:目前,触发程序不会被级联的 外键动作激活。该限制将会被尽早放宽。

  CREATE TRIGGER语句需要SUPER权限。

  示例:

  CREATE TRIGGER update_blogs AFTER INSERT ON blogs FOR EACH ROW
  UPDATE blogcategory SET amount = amount + 1 WHERE cid = NEW.categoryid;

  该语句创建了一个名为update_blogs的触发程序,这个触发程序在blogs表发生INSERT、LOAD DATA和REPLACE语句时执行“UPDATE blogcategory SET amount = amount + 1 WHERE cid = NEW.categoryid;”

展开更多 50%)
分享

猜你喜欢

教程:MYSQL创建触发程序的方法

编程语言 网络编程
教程:MYSQL创建触发程序的方法

Mysql教程:MYSQL创建触发程序

编程语言 网络编程
Mysql教程:MYSQL创建触发程序

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

MYSQL教程:MySQL程序介绍

编程语言 网络编程
MYSQL教程:MySQL程序介绍

MySQL5触发器教程

编程语言 网络编程
MySQL5触发器教程

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

MySQL 5.0触发器参考教程

编程语言 网络编程
MySQL 5.0触发器参考教程

MySQL 5.0 触发器

MySQL mysql数据库
MySQL 5.0 触发器

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

将位图旋转90度

将位图旋转90度

用window.location.href实现刷新另个框架页面

用window.location.href实现刷新另个框架页面
下拉加载更多内容 ↓