一、触发器

触发器是由事件来出发某个动作。这些事件包括insert语句、update语句和delete语句。

当数据库系统执行这些事件时,就会激活触发器执行相应得动作。

触发器是有insert、update、delete等事件来触发某种特定动作。满足触发器的触发条件时,数据库系统就会执行触发器中定义的程序语句。

这样做可以保证某些操作之间的一致性.

1、创建只有一个执行语句的触发器

语法格式:

         create trigger 触发器名 before|after 触发事件

         on 表名 for each row 执行语句

触发器名参数指要创建的触发器的名字;

before和after参数指定了触发器执行的时间;

   before指在触发事件之前执行触发语句;

   after指在触发事件之后执行触发语句;

触发事件指触发的条件,其中包括insert、update、delete;

表名指触发事件操作的表的名称;

for each row表示任何一条记录上的操作满足触发条件都会触发该触发器;

执行语句指触发器被触发后执行的程序;

举例:

create trigger dept_trig1 before insert

on department for each row

inert into trigger_time values(now());

注释:当向department表中执行insert操作时,数据库系统都会在insert语句执行之前向trigger_time表中插入当前时间;

2、创建有多个执行语句的触发器

语法格式:

         create trigger 触发器名 before|after 触发事件

         on 表名 for each row 

         begin

                执行语句列表

         end

执行语句列表表示需要执行的多个执行语句的内容,不同执行语句之间用分好隔开;

注意:

一般情况下,MYSQL默认的是以“;”作为结束执行语句。在创建触发器的过程中,需要用到“;”为了解决这个问题可以用delimiter语句

如“delimiter &&”可以将结束符号变为“&&”。当触发器创建完成之后,可以用命令“delimiter ;”来将结束符号变为“;”。

举例:

delimiter &&

create trigger dept_trig2 aftrer delete

on department for each row

begin
insert into trigger_time values('21:01:01');
insert into trigger_time values('22:01:01');
end && delimiter; 注意:在MYSQL中,一个表在相同的触发时间,只能创建一个触发器; 3、查看触发器 (1)show triggers语句查看触发器信息 语法格式:show triggers; 注释:其结果显示了所有触发器的基本信息,但是该语句无法查询指定的触发器信息,只能查询所有的触发器信息,适合触发器较少时使用 (2)在triggers表中查看触发器信息 在MYSQL中,所有触发器的定义都存储在information_schema数据库下的triggers表中, 查询triggers表,可以查看到数据库中所有触发器的详细信息; 语法格式:select * from information_schema.triggers; 同时该方法可以查询指定触发器的详细信息。 语法格式:select * from information_schema.triggers where trigger_name='触发器名'; 4、触发器的使用 before在触发事件之前执行,after在触发事件之后执行; 注意:触发器中不能包含start transaction、commit或者rollback等关键词,也不能包含call语句。 5、删除触发器 语法格式:drop trigger 触发器名; =====================================================================================================================
=====================================================================================================================
=====================================================================================================================
=====================================================================================================================
=====================================================================================================================
===================================================================================================================== create trigger 触发器名 before| after 触发事件
on 表名 for each row 执行语句; delimiter &&
create trigger 触发器名 before| after 触发事件
on 表名 for each row
begin
执行语句列表
end
&&
delimiter; 触发事件是指触发条件,包括insert、update、delete; 表名指触发事件操作的表的名称;

最新文章

  1. LEETCODE —— Surrounded Regions
  2. NOIp 2012 #1 Vigenère 密码 Label:模拟
  3. H.264 基础及 RTP 封包详解
  4. java.面向对象特征
  5. RobotFrameWork接口报文测试-----(三)demo的加强版(数据驱动测试)
  6. 【POJ】【1741】/【BZOJ】【1468】Tree
  7. 在前台运行Service
  8. ele.me在IOS浏览器端启动APP的技巧分析
  9. 抓包工具 - HttpWatch
  10. WPF DEV实现手风琴效果
  11. C#使用Xamarin开发可移植移动应用进阶篇(10.综合演练,来一份增删改查CRUD)
  12. Oracle学习笔记之存储过程
  13. 面向对象_del
  14. BZOJ1975[Sdoi2010]魔法猪学院——可持久化可并堆+最短路树
  15. Oracle启动和关闭数据库
  16. BZOJ3531[Sdoi2014]旅行——树链剖分+线段树
  17. u3d中的坐标系
  18. WDA-文档-基础篇/进阶篇/讨论篇
  19. 阿里云linux服务器打开端口号
  20. genymotion的安装

热门文章

  1. js array map() 函数的简单使用
  2. 使用ajax向服务端发送Form中的数据
  3. 一个python生成器的使用
  4. 【leetcode】1274. Number of Ships in a Rectangle
  5. C#抽象类怎么调试
  6. (转载)rabbitmq与springboot的安装与集成
  7. echarts 有关饼形图和map的使用技巧1(饼图)
  8. 死磕java多线程
  9. c++匿名函数精简写法
  10. TensorFlow基本计算单元——变量