Oracle触发器创建及其功能
下面的文章主要介绍的是如何创建Oracle触发器,同时介绍了Oracle触发器的功能、语法,而且通过具体的例子可以让大家更深入的掌握。
1.创建表t1 :create table t1 (id number,name nvarchar(8));
2.创建Oracle序列 :CREATE SEQUENCE t1_id INCREMENT BY 1 START WITH 1 MAXVALUE
3.创建Oracle触发器 :
CREATE TRIGGER tig_insert_t1
BEFORE INSERT ON "YINZQ"."T1"
begin
if (: is null) then
select t1_val into : from dual; //其中的: 指的是t1表中新行的列
end if;
end;
le触发器功能
触发器是特定事件出现的时候,自动执行的代码块。类似于存储过程,触发器与存储过程的区别在于:存储过程是由用户或应用程序显式调用的,而触发器是不能被直接调用的'。
功能:
1)允许/限制对表的修改
2)自动生成派生列,比如自增字段
3)强制数据一致性
4)提供审计和日志记录
5)防止无效的事务处理
6)启用复杂的业务逻辑
5.触发器触发使用有两种:after和before。
Oracle触发器的语法:
CREATE [OR REPLACE] TIGGER触发器名 触发时间 触发事件
ON表名
[FOR EACH ROW]
BEGIN
pl/sql语句
END
1)触发器名:触发器对象的名称。由于触发器是数据库自动执行的,因此该名称只是一个名称,没有实质的用途。
2)触发时间:指明触发器何时执行,该值可取:
before---表示在数据库动作之前触发器执行;
after---表示在数据库动作之后出发器执行。
3)触发事件:指明哪些数据库动作会触发此触发器:
insert:数据库插入会触发此触发器;
举例说明:让Oracle实现自增字段
步骤:先建序列,然后建立一个Oracle触发器实现!
cata0是表名,cata0_id是需要自增的字段!
CREATE SEQUENCE SEQ_cata0
INCREMENT BY 1
START WITH 1
MAXVALUE 9999999
CREATE TRIGGER TRG_cata0 BEFORE
INSERT ON cata0
FOR EACH ROW begin
INTO :0_ID
from DUAL;
End TRG_cata0;
/****@PARAM STNAME 不要创建序列的表,多个表则以“,”隔开**/
CREATE OR REPLACE PROCEDURE PROC_CREATE_SEQ_TRIG(STNAME IN VARCHAR2)
AS
STRSQL VARCHAR2(4000);
TABLENAME VARCHAR2(50);
PID VARC ......
-
H3C认证无线技术专家考试简介
H3CSWLAN(H3CCertifiedSpecialistForWLAN,H3C认证无线技术专家)认证将帮助您在了解802.11协议族标准和主流WLAN设备及天线的基础上,进一步掌握无线网络勘测与设计,并具备使用H3C无线产品进行应用布署、工程实施和运维指导的能力。H3CSWLAN认证适用的对象包括:各行...
-
J2EE学习技巧
第一步:学习java基本语法,慢慢熟悉面向对象的编程理念(封装、继承和多态)封装和集成比较好理解,搞清楚多态可能要费点功夫,这只是j2ee学习过程中的第一步。第二步:学习JSP相关知识,掌握JSP代码、JSP指令、JSP动作,同时也要学一些servlet、XML方面的知识,JSP相比于后面...
-
2016年嵌入式工程师面试题及答案「精选」
1.用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#defineSECONDS_PER_YEAR(60*60*24*365)UL我在这想看到几件事情:1)#define语法的基本知识(例如:不能以分号结束,括号的使用,等等)2)懂得预处理器将为你计算常数表达式的值,因此直接写出你如何...
-
2016最新计算机二级模拟试题
2016年计算机二级考试在即,本站小编为同学们带来最新二级考试模拟试题,快来练一练吧!一、选择题(每小题1分。共20分)1、设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为()。A.15B.1...