mysql触发器总结

来源:互联网 发布:数据可视化案例 编辑:程序博客网 时间:2024/06/04 19:04

一. 对触发器的说明

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

2. 语法介绍:create trigger   触发器名称   触发时间  触发事件  on  触发器作用的表名  for each row    触发器程序

  例如:CREATE trigger trig_cdr before INSERT ON cdrFOR eachROW begin   //语句end;//
触发器作用的表必须为永久性表。不能将触发程序与TEMPORARY表或视图关联起来。

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

触发事件指明了激活触发程序的语句的类型.。INSERT:将新行插入表时激活触发程序,例如,通过INSERTLOAD DATAREPLACE语句; UPDATE:更改某一行时激活触发程序,例如,通过UPDATE语句;DELETE:从表中删除某一行时激活触发程序,例如,通过DELETEREPLACE语句。

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

3. 删除触发器

DROP TRIGGER [schema_name.]trigger_name
4. 说明:
    在使用多条语句的时候,要使用delimiter //
    例如: mysql> delimiter //
4. 触发器执行语句的说明
(1)精确搜索
  declare ID int(255);   说明:声明变量
  select CR_Oprt_ID into ID from call_center.Oprt_Info where Oprt_Extension =new.src;   
  说明:CR_Oprt_ID是call_center数据库Oprt_Info表中的字段。
 (2)模糊搜索(用like)
   select filepath into path from call_center.record_filepath where uniqueid like  concat(@unique_top,'%',@unique_tail);
  说明:concat连接字符串函数;%匹配任意字符;@unique_top为临时变量
(3)字符串截取函数
    substring(str, pos, length) 说明:substring(被截取字段,从第几位开始截取,截取长度) 。pos从1开始。 
       substring_index(被截取字段,关键字,关键字出现的次数)出现的次数可以为负数,负数代表从后面数起。

原创粉丝点击