首页 >

Oracle 11g 触发器新增功能

数据库|mysql教程Oracle 11g 触发器新增功能
Oracle 触发器,Oracle 11g,Oracle 1
数据库-mysql教程
图片简洁个人博客源码,ubuntu 边缘黑框,tomcat下载好就闪退,爬虫翠青蛇,php控制台输出图片,seo全案品牌lzw
Oracle允许超过一个触发器建立相同的时间点,但它从来不保证它们的执行顺序。Oracle 11g触发器语法现在包括FOLLOWS子句保证了触发
驱动内存读写模块源码,在vscode中如何设置语言,ubuntu 9.10 安装,tomcat能运行哪些,sqlite 加密性能,网页设计标准页面布局,serv u建立ftp服务器,js 列表 插件,前端框架施工,怪力小爬虫,php动态数组,seo学,springboot删除回滚,如何安装网站模板,网页注册界面设计代码,飞飞cms商业模板,dede登录后台卡,固定页面底部footer,警务站综合管理系统,万能小店小程序lzw
易语言开机自动启动源码,vscode安装好要配置环境吗,ubuntu源码包安装,脚本安装tomcat8.0,c sqlite 导入,潍坊网页设计,l5420 服务器内存,discuz检测盗版插件,京东前端ui框架,长腿的爬虫,php与mysql基础教程,移动端seo优化,springboot热拔插功能,寿光房产网站源码,点击网页空白弹出其他网页,phpcms v9添加模板,域名控制面板后台,jquery 加载到html页面刷新,app后台管理系统模板,php 抽奖 程序lzw

触发器的执行顺序

组合触发器

启用和禁用触发器

触发器的执行顺序

Oracle允许超过一个触发器建立相同的时间点,但它从来不保证它们的执行顺序。Oracle 11g触发器语法现在包括FOLLOWS子句保证了触发器的执行顺序在相同时间点。下面的例子创建一张表和两个在相同时间点触发的触发器

CREATE TABLE trigger_follows_test (

id NUMBER,

description VARCHAR2(50)

);

CREATE OR REPLACE TRIGGER trigger_follows_test_trg_1

BEFORE INSERT ON trigger_follows_test

FOR EACH ROW

BEGIN

DBMS_OUTPUT.put_line(‘TRIGGER_FOLLOWS_TEST_TRG_1 – Executed’);

END;

/

CREATE OR REPLACE TRIGGER trigger_follows_test_trg_2

BEFORE INSERT ON trigger_follows_test

FOR EACH ROW

BEGIN

DBMS_OUTPUT.put_line(‘TRIGGER_FOLLOWS_TEST_TRG_2 – Executed’);

END;

/

我们插入测试表,触发器的执行顺序没有保证。

SQL> SET SERVEROUTPUT ON

SQL> INSERT INTO trigger_follows_test VALUES (1, ‘ONE’);

TRIGGER_FOLLOWS_TEST_TRG_1 – Executed

TRIGGER_FOLLOWS_TEST_TRG_2 – Executed

1 row created.

SQL>

我们可以指定触发器TRIGGER_FOLLOWS_TEST_TRG_2在TRIGGER_FOLLOWS_TEST_TRG_1之前执行通过重建使用FOLLOWS子句的TRIGGER_FOLLOWS_TEST_TRG_1得触发器。

CREATE OR REPLACE TRIGGER trigger_follows_test_trg_1

BEFORE INSERT ON trigger_follows_test

FOR EACH ROW

FOLLOWS trigger_follows_test_trg_2

BEGIN

DBMS_OUTPUT.put_line(‘TRIGGER_FOLLOWS_TEST_TRG_1 – Executed’);

END;

/

现在TRIGGER_FOLLOWS_TEST_TRG_1总是TRIGGER_FOLLOWS_TEST_TRG_2后面执行

SQL> SET SERVEROUTPUT ON

SQL> INSERT INTO trigger_follows_test VALUES (2, ‘TWO’);

TRIGGER_FOLLOWS_TEST_TRG_2 – Executed

TRIGGER_FOLLOWS_TEST_TRG_1 – Executed

1 row created.

SQL>

删除测试表。

DROP TABLE trigger_follows_test;

组合触发器

组合触发器允许代码为一个或多个时间点为特定的对象结合起来,单独的时间点可以共享一个全局声明部分,这种状态在试用期间一直保持,一旦语句结束,不管执行成功还是错误,,触发器状态将被清理干净。在以前的版本中,该类型功能只能通过定义多个触发器和全局变量在一个单独的包中。

组合触发器的动作定义和其他DML触发器相同,此外增加了 COMPOUND TRIGGER 子句。触发器的主体是由一个可选的全局声明部分及一个或多个计时点部分,每个可能包含一个不能维持状态的本地声明。

CREATE OR REPLACE TRIGGER

FOR ON

COMPOUND TRIGGER

— Global declaration.

g_global_variable VARCHAR2(10);

BEFORE STATEMENT IS

BEGIN

NULL; — Do something here.

END BEFORE STATEMENT;

BEFORE EACH ROW IS

BEGIN

NULL; — Do something here.

END BEFORE EACH ROW;

AFTER EACH ROW IS

BEGIN

NULL; — Do something here.

END AFTER EACH ROW;

AFTER STATEMENT IS

BEGIN

NULL; — Do something here.

END AFTER STATEMENT;

END ;

/


Oracle 11g 触发器新增功能
  • Oracle 11gR2 RAC 实例 Admin-Managed 与 Policy-Managed 区别
  • Oracle 11gR2 RAC 实例 Admin-Managed 与 Policy-Managed 区别 | Oracle 11gR2 RAC 实例 Admin-Managed 与 Policy-Managed 区别 ...

    Oracle 11g 触发器新增功能
  • Oracle 11g logminer实验
  • Oracle 11g logminer实验 | Oracle 11g logminer实验 ...

    Oracle 11g 触发器新增功能
  • oracle 11g RAC 安装前准备脚本
  • oracle 11g RAC 安装前准备脚本 | oracle 11g RAC 安装前准备脚本 ...