oracle 学习笔记之触发器
数据库触发器是一个与表相关联的、存储的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 学习笔记之触发器相关推荐
- Oracle学习笔记十三 触发器
2019独角兽企业重金招聘Python工程师标准>>> 简介 触发器是当特定事件出现时自动执行的存储过程,特定事件可以是执行更新的DML语句和DDL语句,触发器不能被显式调用. 触发 ...
- 在大量数据迁移期间oracle学习笔记
在数据迁移期间oracle学习笔记 0主键(自增) 1用户代码 2区域代码 3承保公司代码 4理赔编码 5投保确认码 6案件状态 7案件进展 8重开案件进展 9转换后案件状态 需求分析: 1.根据上述 ...
- oracle:oracle学习笔记(四)循环、光标、异常、瀑布模型
oracle学习笔记:循环.光标.异常 文章目录 打印Hello World 定义基本变量 引用型变量(单行)` my_name emp.ename%type ` 记录型变量(多行) `emp_rec ...
- Oracle学习笔记---(一)
Oracle学习笔记---(一) 一 1.Oracle简介 Oracle是以高级结构化查询语言(SQL)为基础的大型关系数据库:是一个对象关系数据库管理系统(ORDBMS).它提供了关系数据库 ...
- oracle 权限问题9017,[数据库]oracle学习笔记(一)用户管理_星空网
oracle学习笔记(一)用户管理 2014-04-13 0 1 --oracle学习第一天 2 --连接 @后面连接数据库实例,具体连接到那个数据库 3 conn scott/tiger@MYORA ...
- 【Oracle】Oracle学习笔记
[Oracle]Oracle学习笔记 目录 [Oracle]Oracle学习笔记 P1.Oracle数据库的安装和配置 P2.Oracle数据库管理 P3-0.初步SQL P3-1.基本SQL SEL ...
- oracle学习笔记 Oracle体系结构概述
oracle学习笔记 Oracle体系结构概述 从这节开始,开始讲oracle数据库体系结构. 首先从总体上,从概述上把oracle整体的体系结构讲一下, 然后接下来的时间我们会一块一块的将oracl ...
- Oracle学习笔记 字符集概述
Oracle 学习笔记 字符集概述 这节课开始讲oracle里面的字符集 偏重于原理和简单的一些判断以及实现 字符集它涉及到很多的东西 比如建库和操作系统环境 这节课把字符集的原理性的东西以及常见的操 ...
- oracle学习笔记 oracle软件安装准备工作 第一部分 环境准备
oracle学习笔记 oracle软件安装准备工作 第一部分 环境准备 这节课对初学者来说内容较多,我把它分成了三篇. 即使这样也不可能把每个可能遇到的问题都说到,如果遇到没说到的问题自己上网搜 ...
最新文章
- java读取服务器图片大小,SpringMVC中MultipartFile上传获取图片的宽度和高度详解
- Jsoup解析的例子 之 选择器
- C语言——输出*菱形
- 源码角度解释fragment的坑(二)
- PHP抽象类与接口的区别
- windows hosts 作用以及常见问题解决
- 递推关系中的数列通项
- php留言板开发功能,PHP实现基本留言板功能原理与步骤详解
- R语言分类变量的统计描述
- csr蓝牙驱动Linux,csr harmony蓝牙适配器驱动
- 【转】赢在中国---马云点评创业精选
- 易康(eCognition)对象几何特征--1:几何(Geometry)_范围(Extent)
- 2005年度世界500强公司名单[转]
- Interactive Sketch-Based Normal Map Generation with Deep Neural Networks
- 正在存储windows支持软件_ibm/lenovoDS3500扩展柜存储管理软件-北京瑞腾世纪科技有限公司...
- 【软件工程】课程管理系统需求分析规格说明
- git push报错 无法提交远程 [rejected] main -> main (fetch first)error: failed to push some refs to
- CSP-J1 CSP-S1 初赛 第1轮(2022.08.09)
- VCC(电源)和 GND(地)之间电容的作用
- 【天翼云服务器】新服务器centos环境搭建,按照docker环境,解决相关配置问题。