一、触发器简介

触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行。因此触发器不需要人为的去调用,也不能调用。然后,触发器的触发条件其实在你定义的时候就已经设定好了。这里面需要说明一下,触发器可以分为语句级触发器和行级触发器。详细的介绍可以参考网上的资料,简单的说就是语句级的触发器可以在某些语句执行前或执行后被触发。而行级触发器则是在定义的了触发的表中的行数据改变时就会被触发一次。
具体举例:
1、 在一个表中定义的语句级的触发器,当这个表被删除时,程序就会自动执行触发器里面定义的操作过程。这个就是删除表的操作就是触发器执行的条件了。
2、 在一个表中定义了行级的触发器,那当这个表中一行数据发生变化的时候,比如删除了一行记录,那触发器也会被自动执行了。

二、触发器语法

触发器的语法:
create [or replace] tigger 触发器名 触发时间 触发事件
on 表名
[for each row]
begin
  pl/sql语句
end
其中:
触发器名:触发器对象的名称。由于触发器是数据库自动执行的,因此该名称只是一个名称,没有实质的用途。
触发时间:指明触发器何时执行,该值可取:
before:表示在数据库动作之前触发器执行;
after:表示在数据库动作之后触发器执行。
触发事件:指明哪些数据库动作会触发此触发器:
insert:数据库插入会触发此触发器;
update:数据库修改会触发此触发器;
delete:数据库删除会触发此触发器。
表 名:数据库触发器所在的表。
for each row:对表的每一行触发器执行一次。如果没有这一选项,则只对整个表执行一次。

触发器能实现如下功能:

功能:
1、 允许/限制对表的修改
2、 自动生成派生列,比如自增字段
3、 强制数据一致性
4、 提供审计和日志记录
5、 防止无效的事务处理
6、 启用复杂的业务逻辑

最新文章

  1. MYSQL基础操作之单表的增删改查
  2. Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) C. Ray Tracing
  3. PHP之:多图上传
  4. [Aaronyang]谈谈2015年AY对WPF全面技术总结40多篇WPF,炫到没朋友的AYUI来了
  5. DP:Ant Counting(POJ 3046)
  6. 有趣的checkbox动画切换状态(支付宝转账成功显示)--第三方开源--AnimCheckBox
  7. [iOS基础控件 - 6.10.2] PickerView 自定义row内容 国家选择Demo
  8. MySql 取一天的开始时间和结束时间
  9. primary key与unique的区别
  10. PHP学习笔记13淘宝接口开发一例(tmall.items.discount.search),PHP
  11. MySQl5.6最新安装
  12. C#图解教程 第十九章 LINQ
  13. iOS----------时间戳与NSDate
  14. DBlink 创建 删除 脚本
  15. python redis存入字典序列化存储
  16. 【添加tomcat里lib下的jar包】eclipse中The project cannot be built until build path errors are resolved
  17. EasyUI 通过 Combobox 实现 AutoComplete 效果
  18. Spring boot项目集成Sharding Jdbc
  19. Datatable报错Uncaught TypeError: Cannot read property 'cell' of undefined
  20. iperf3网络测试工具

热门文章

  1. 使用gulp进行css、js压缩
  2. Vue.js随笔三(npm init webpack my-project指令安装失败解决方案)
  3. github访问很慢的问题
  4. NOIP 2015 提高组 Day1
  5. HDU 6061 推导 NTT
  6. Linux更改文件及目录权限问题
  7. webapi + windows计划 + mshta 实现定时执行任务
  8. Spring集成quartz集群配置总结
  9. .NET面试题系列(一)基本概念
  10. 遍历hashmap