zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

熟悉Oracle触发器的类型:深入解析(oracle触发器类型)

Oracle 深入 解析 类型 触发器 熟悉
2023-06-13 09:14:39 时间

Oracle触发器(Trigger)是一种用于在数据库的SQL语句操作的发生变化/更新时,自动触发一系列的操作。它可以联合表、视图、过程等对数据库数据进行操作。在数据库中,我们可以通过它来补偿一些没有完成的事务操作,如更新数据、删除数据等。

Oracle触发器有以下几种类型:

1. 表触发器(Table Trigger):表触发器是最常用的触发器,当在表中发生什么样的操作时,可以设置表触发器来处理,可以在对数据库中的表中进行DML操作或DDL操作时进行触发,比如新建表、修改表结构等。示例代码如下:

CREATE OR REPLACE TRIGGER tr_t1_new

AFTER INSERT ON t1

FOR EACH ROW

DECLARE

BEGIN

INSERT INTO t2 VALUES (:NEW.f1, :NEW.f2);

END;

2. 视图触发器(View Trigger):视图触发器不但可以用在视图上,表上也可以使用。视图触发器是对基表中发生某种事件或者对视图中发生某种事件可以设置触发器来处理。示例代码如下:

CREATE OR REPLACE TRIGGER tr_view_new

AFTER INSERT ON v_t1

FOR EACH ROW

DECLARE

BEGIN

INSERT INTO t2 VALUES (:NEW.f1, :NEW.f2);

END;

3. 登录触发器(Login Trigger):登录触发器可以在用户登录或注销时被触发,在初始化参数中可以指定初始化。示例代码如下:

CREATE OR REPLACE TRIGGER tr_login

AFTER LOGON ON DATABASE

DECLARE

userName VARCHAR2(10);

BEGIN

userName := USER;

IF userName SYSTEM

THEN

INSERT INTO t_login_log VALUES (userName,SYSDATE);

END IF;

END;

4. DDL触发器(DDL Trigger):DDL触发器是在数据库对象发生改变时触发,比如创建table、修改表等。示例代码如下:

CREATE OR REPLACE TRIGGER tr_table_create

AFTER CREATE ON DATABASE

DECLARE

tableName VARCHAR2(30);

BEGIN

tableName := ora_dict_obj_name;

INSERT INTO t_table_log VALUES (tableName,SYSDATE);

END;

以上就是关于Oracle触发器的几种类型,它们可以满足不同的要求来操作数据库中的数据,从而实现数据库的自动操作。


我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题

本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 熟悉Oracle触发器的类型:深入解析(oracle触发器类型)