说明
数据库触发器是一个与表相关联的、存储的PL/SQL程序。

每当一个特定的数据操作语句(Insert,update,delete)在指定的表上发出时,Oracle自己主动地运行触发器中定义的语句序列。
触发器的类型
语句级触发器:在指定的操作语句操作之前或之后运行一次,无论这条语句影响了多少行 。
行级触发器(FOR EACH ROW):触发语句作用的每一条记录都被触发。

在行级触发器中使用old和new伪记录变量, 识别值的状态。

触发器可用于:1)数据确认  2)实施复杂的安全性检查.3)做审计,跟踪表上所做的数据操作等.4)数据的备份和同步

触发器语法:

CREATE  [or REPLACE] TRIGGER  触发器名{BEFORE | AFTER}{DELETE | INSERT | UPDATE [OF 列名]}ON  表名[FOR EACH ROW [WHEN(条件) ] ]
PLSQL 块

触发语句与伪记录变量的值:

触发语句

:old

:new

Insert

全部字段都是空(null)

将要插入的数据

Update

更新曾经该行的值

更新后的值

delete

删除曾经该行的值

全部字段都是空(null)

案例1:限制非工作时间向数据库插入数 周六 周日 以及工作时间的非8点到18点的时间段是不能够在emp2表中插入数据的!

create or replace
trigger myTrigger
before insert on emp2
beginif to_char(sysdate,'day') in('星期六','星期日') orto_number(to_char(sysdate,'hh24')) not between 8 and 18 thenraise_application_error(-20001,'不能在飞工作时间插入数据');end if;
end;

案例二: 确认数据(检查emp表中sal 的改动值不低于原值)也就是说你仅仅能给员工涨工资儿不能减工资!

create or replace
trigger checkSal
before update of sal on emp2
for each row
declare
beginif :new.sal<:old.sal thenraise_application_error(-20002,'更新薪水比之前的小。');end if;
end;

oracle 学习笔记之触发器相关推荐

  1. Oracle学习笔记十三 触发器

    2019独角兽企业重金招聘Python工程师标准>>> 简介 触发器是当特定事件出现时自动执行的存储过程,特定事件可以是执行更新的DML语句和DDL语句,触发器不能被显式调用. 触发 ...

  2. 在大量数据迁移期间oracle学习笔记

    在数据迁移期间oracle学习笔记 0主键(自增) 1用户代码 2区域代码 3承保公司代码 4理赔编码 5投保确认码 6案件状态 7案件进展 8重开案件进展 9转换后案件状态 需求分析: 1.根据上述 ...

  3. oracle:oracle学习笔记(四)循环、光标、异常、瀑布模型

    oracle学习笔记:循环.光标.异常 文章目录 打印Hello World 定义基本变量 引用型变量(单行)` my_name emp.ename%type ` 记录型变量(多行) `emp_rec ...

  4. Oracle学习笔记---(一)

    Oracle学习笔记---(一) 一 1.Oracle简介     Oracle是以高级结构化查询语言(SQL)为基础的大型关系数据库:是一个对象关系数据库管理系统(ORDBMS).它提供了关系数据库 ...

  5. oracle 权限问题9017,[数据库]oracle学习笔记(一)用户管理_星空网

    oracle学习笔记(一)用户管理 2014-04-13 0 1 --oracle学习第一天 2 --连接 @后面连接数据库实例,具体连接到那个数据库 3 conn scott/tiger@MYORA ...

  6. 【Oracle】Oracle学习笔记

    [Oracle]Oracle学习笔记 目录 [Oracle]Oracle学习笔记 P1.Oracle数据库的安装和配置 P2.Oracle数据库管理 P3-0.初步SQL P3-1.基本SQL SEL ...

  7. oracle学习笔记 Oracle体系结构概述

    oracle学习笔记 Oracle体系结构概述 从这节开始,开始讲oracle数据库体系结构. 首先从总体上,从概述上把oracle整体的体系结构讲一下, 然后接下来的时间我们会一块一块的将oracl ...

  8. Oracle学习笔记 字符集概述

    Oracle 学习笔记 字符集概述 这节课开始讲oracle里面的字符集 偏重于原理和简单的一些判断以及实现 字符集它涉及到很多的东西 比如建库和操作系统环境 这节课把字符集的原理性的东西以及常见的操 ...

  9. oracle学习笔记 oracle软件安装准备工作 第一部分 环境准备

    oracle学习笔记   oracle软件安装准备工作  第一部分 环境准备 这节课对初学者来说内容较多,我把它分成了三篇. 即使这样也不可能把每个可能遇到的问题都说到,如果遇到没说到的问题自己上网搜 ...

最新文章

  1. java读取服务器图片大小,SpringMVC中MultipartFile上传获取图片的宽度和高度详解
  2. Jsoup解析的例子 之 选择器
  3. C语言——输出*菱形
  4. 源码角度解释fragment的坑(二)
  5. PHP抽象类与接口的区别
  6. windows hosts 作用以及常见问题解决
  7. 递推关系中的数列通项
  8. php留言板开发功能,PHP实现基本留言板功能原理与步骤详解
  9. R语言分类变量的统计描述
  10. csr蓝牙驱动Linux,csr harmony蓝牙适配器驱动
  11. 【转】赢在中国---马云点评创业精选
  12. 易康(eCognition)对象几何特征--1:几何(Geometry)_范围(Extent)
  13. 2005年度世界500强公司名单[转]
  14. Interactive Sketch-Based Normal Map Generation with Deep Neural Networks
  15. 正在存储windows支持软件_ibm/lenovoDS3500扩展柜存储管理软件-北京瑞腾世纪科技有限公司...
  16. 【软件工程】课程管理系统需求分析规格说明
  17. git push报错 无法提交远程 [rejected] main -> main (fetch first)error: failed to push some refs to
  18. CSP-J1 CSP-S1 初赛 第1轮(2022.08.09)
  19. VCC(电源)和 GND(地)之间电容的作用
  20. 【天翼云服务器】新服务器centos环境搭建,按照docker环境,解决相关配置问题。

热门文章

  1. pandas实现众数和众数的频数
  2. python——聚类
  3. 论文中键入行内公式导致行间距变大的解决方案
  4. OneHotEncoder独热编码和 LabelEncoder标签编码——机器学习
  5. 委托、多播委托(MulticastDelegate)
  6. kingadmin页面开发
  7. django项目mysql中文编码问题
  8. 编写 DockerFile
  9. [刷题]Counting Bits
  10. 原始套接字学习笔记(1)