Oracle触发器创建及其功能介绍

数据库 Oracle
文章简单提到了Oracle表、序列的创建,以及Oracle触发器的创建、功能、语法,并且通过Oracle实现自增字段的例子深入浅出的描述了如何建立Oracle表以及Oracle触发器。

通过学习,我们大家对创建c创建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 (:new.id is null) then
select t1_id.nextval into :new.id from dual; //其中的:new.id 指的是t1表中新行的列
end if;
end;

4.Oracle触发器功能
触发器是特定事件出现的时候,自动执行的代码块。类似于存储过程,触发器与存储过程的区别在于:存储过程是由用户或应用程序显式调用的,而触发器是不能被直接调用的。
功能:
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 :NEW.cata0_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 ...... 

【编辑推荐】

  1. Oracle触发器的使用情况追中
  2. 你是否了解Oracle触发器
  3. Oracle触发器详细介绍
  4. Oracle创建管理员步骤概述
  5. Oracle创建Split 与Map 函数的代码示例
责任编辑:王婧瑶 来源: 互联网
相关推荐

2011-05-20 14:06:25

Oracle触发器

2010-10-11 14:52:43

Mysql触发器

2010-04-23 13:01:43

Oracle报表

2009-11-18 13:15:06

Oracle触发器

2011-04-14 13:54:22

Oracle触发器

2011-05-19 14:29:49

Oracle触发器语法

2010-10-12 10:24:58

mysql触发器

2010-04-15 15:32:59

Oracle操作日志

2011-08-04 11:00:35

Oracle数据库虚拟列复合触发器

2010-05-18 15:36:44

MySQL触发器

2010-04-09 09:07:43

Oracle游标触发器

2010-10-25 14:09:01

Oracle触发器

2010-04-26 14:12:23

Oracle使用游标触

2009-12-24 17:38:18

WPF事件触发器

2010-05-04 09:44:12

Oracle Trig

2011-04-19 10:48:05

Oracle触发器

2011-03-03 14:04:48

Oracle数据库触发器

2023-06-11 16:09:49

触发器MySQL

2010-04-29 10:48:10

Oracle序列

2010-04-09 13:17:32

点赞
收藏

51CTO技术栈公众号