`

第二章 触发器

SQL 
阅读更多
1.触发器的创建
引用

CREATE TRIGGER [schema.]trigger_name
{BEFORE|AFTER} {UPDATE|INSERT|DELETE} ON [schema.]table_name
[ [REFERENCING correlation_names] FOR EACH ROW [WHEN (condition)] ]
DECLARE
declaration
BEGIN
pl/sql code
END;
/

2.触发器的管理
1) 查看触发器:
引用

SQL> desc ALL_TRIGGERS;
名称                                      是否为空? 类型
----------------------------------------- -------- ----------------------------
OWNER                                              VARCHAR2(30)
TRIGGER_NAME                                       VARCHAR2(30)
TRIGGER_TYPE                                       VARCHAR2(16)
TRIGGERING_EVENT                                   VARCHAR2(227)
TABLE_OWNER                                        VARCHAR2(30)
BASE_OBJECT_TYPE                                   VARCHAR2(16)
TABLE_NAME                                         VARCHAR2(30)
COLUMN_NAME                                        VARCHAR2(4000)
REFERENCING_NAMES                                  VARCHAR2(128)
WHEN_CLAUSE                                        VARCHAR2(4000)
STATUS                                             VARCHAR2(8)
DESCRIPTION                                        VARCHAR2(4000)
ACTION_TYPE                                        VARCHAR2(11)
TRIGGER_BODY                                       LONG

2)查看触发器的代码:
触发器的源代码被存贮在 ALL_TRIGGERS 的 trigger_body 字段中。抽取触发器定义的命令:
SET ECHO OFF
SET MAXDATA 20000
SET LONG 20000
SET LONGCHUNKSIZE 1000
SET PAGESIZE 0
SET HEADING OFF
SET TRIMSPOOL ON
SET TRIMOUT ON
SET RECSEP OFF
ACCEPT trigger_name CHAR PROMPT 'please input the trigger to lookup:'
ACCEPT trigger_owner CHAR PROMPT 'please input the trigger owner:'
ACCEPT file_name CHAR PROMPT 'please enter the output file path:'
SET TERMOUT OFF
SET FEEDBACK OFF
-- 设置when_clause字段格式并使之折行
COLUMN when_clause FORMAT A60 WORD_WRAPPED
SPOOL &file_name
SELECT 'CREATE OR REPLACE TRIGGER ' || description FROM all_triggers
WHERE trigger_name = UPPER('&trigger_name')
AND owner = UPPER('&trigger_owner');
SELECT 'WHEN (' || when_clause || ')' when_caluse FROM all_triggers
WHERE trigger_name = UPPER('&trigger_name')
AND owner = UPPER('&trigger_owner')
AND when_clause IS NOT NULL;
SELECT trigger_body FROM all_triggers
WHERE trigger_name = UPPER('&trigger_name')
AND owner = UPPER('&trigger_owner');
SELECT '/' FROM DUAL;
SPOOL OFF
SET TERMOUT ON
SET FEEDBACK ON
SET VERIFY ON
SET HEADING ON
SET PAGESIZE 24

3) 打开和关闭触发器:
-- 打开触发器
ALTER TRIGGER trigger_name DISABLE;
-- 关闭触发器
ALTER TRIGGER trigger_name ENABLE;

3触发器的新功能
创建作用于特定数据库与数据定义事件的触发器。事件包括:
  • 大小: 42.4 KB
  • 大小: 54.7 KB
分享到:
评论

相关推荐

    习题精选第二十一章触发器和时序逻辑电路.pdf

    习题精选第二十一章触发器和时序逻辑电路

    PLSQL高级编程资料

    第二章 触发器 2.1 触发器的创建 2.2 触发器的管理 2.3 触发器的新功能 2.4 替代触发器 2.5 触发器的局限性 第三章 对象 3.1 对象的定义 3.2 对象的存贮和检索 第四章 调试 4.1 编写 DEBUG 程序包(例程) 4.2 调用...

    数字电子技术基础:第五章 触发器(第二世界--ATPase--2015-06-07-10,11,05).ppt

    数字电子技术基础:第五章 触发器(第二世界--ATPase--2015-06-07-10,11,05).ppt

    第六章 第二节 触发器.flv

    数据库系统

    5.第五章_触发器1

    第五章触发器5.1 概述一、用于记忆1位二进制信号1. 有两个能自行保持的状态2. 根据输入信号可以置成0或1二、分类1. 按触发方式(电平,脉冲,边沿)动作特

    第二章 数据库的管理

    知名培训机构完整的的mysql数据库课件,第一章 数据库入门、第二章 数据库的管理、第三章 数据表的管理、第四章 数据库设计、第五章 数据增删改、第六章 简单查询、第七章 高级查询、第八章 常用函数、第九章 视图、...

    大型数据库系统复习题.doc

    第二章 ORACLE 11g 的体系结构 第三章 ORACLE 11g 的数据库管理 第四章 ORACLE 11g 的表空间管理 第五章 ORACLE 11g 的表管理 第六章 ORACLE 11g 的数据查询 第七章 ORACLE 数据的基本操作 第八章 索引 第九章 视图 ...

    数字电子技术PPT

    第3章 触发器 第3章_组合逻辑电路 第4章_触发器 第5章 计数器 第5章 时序逻辑电路(计数器) 第5章 时序逻辑电路(寄存器) 第6章 脉冲产生与整形电路 第7章 AD和DA转换 第六章 触发器与555定时器 第十一章 存储器 第...

    ORACLE__SQL语句教学

    第二章 Oracle入门 6 第三章 查询基础 11 第四章 单行函数 14 第五章 分组函数 19 第六章 多表查询 21 ... 第十九章 游标、函数 79 第二十章 存储过程 86 第二十一章 触发器 90 第二十二章 事务(数据库系统...

    Oracle教程 超详细

    第二章 Oracle入门 第三章 查询基础 第四章 单行函数 第五章 分组函数 第六章 多表查询 第七章 子查询 第八章 高级查询 第九章 数据字典 第十章 Oracle数据类型 第十一章 Oracle体系结构(DBA) 第十二章 DDL(改变表...

    Oracle超详细教程

    第二章 Oracle入门 第三章 查询基础 第四章 单行函数 第五章 分组函数 第六章 多表查询 第七章 子查询 第八章 高级查询 第九章 数据字典 第十章 Oracle数据类型 第十一章 Oracle体系结构(DBA) 第十二章 ...

    详细orale教程

    第二章 Oracle 入门 第三章 查询基础 第四章 单行函数 第五章 分组函数 第六章 多表查询 第七章 子查询 第八章 高级查询 第九章 数据字典 第十章 Oracle 数据类型 第十一章 Oracle 体系结构(DBA) ...

    Oracle详细教程

    第二章 Oracle 入门 第三章 查询基础 第四章 单行函数 第五章 分组函数 第六章 多表查询 第七章 子查询 第八章 高级查询 第九章 数据字典 第十章 Oracle 数据类型 第十一章 Oracle 体系结构(DBA) 第十二章 DDL...

    ORACLE详细教程

    第二章 Oracle 入门 第三章 查询基础 第四章 单行函数 第五章 分组函数 第六章 多表查询 第七章 子查询 第八章 高级查询 第九章 数据字典 第十章 Oracle 数据类型 第十一章 Oracle 体系结构(DBA) 第十二章 DDL(改变...

    信永国际 中文超详细Oracle教程

    第二章 Oracle入门 第三章 查询基础 第四章 单行函数 第五章 分组函数 第六章 多表查询 第七章 子查询 第八章 高级查询 第九章 数据字典 第十章 Oracle数据类型 第十一章 Oracle体系结构(DBA) 第十二章 ...

    完整的数电课件、数字电路单片机必学

    功率.pdf ...第二章 逻辑门电路.ppt 第五章 触发器.ppt 第八章 半导体存储器和可编程逻辑器.ppt 第六章 时序逻辑电路的分析与设计.ppt 第十章 数模和模数转换器.ppt 第四章 常用组合逻辑功能器件.ppt

    第十五章:触发器

    二、DML触发器 三、INSTEAD OF 触发器 四、系统触发器 什么是触发器? 触发器是指存放在数据库中,并且被隐含执行的存储过程。当发生特定事件时,Oracle会自动执行触发器的相应代码。 SQL> --当我们对empnew执行...

    SQLSERVER+数据库设计与实现详解

    第二章 创建和维护数据库 第三章 设计表 第四章 表的管理 第五章 维护表的数据 第六章 结构化查询语言 SQL 第七章 视图 第八章 Transact-SQL 高级查询 第九章 SQL SERVER 编程结构 第十章 SQL SERVE函数 第十一章 ...

    数字电路基础(内容非常详尽,而且循序渐进)

    第二章 逻辑门电路 第三章 组合逻辑电路的分析与设计 第四章 组合逻辑模块及其应用 第五章 触发器 第六章 时序逻辑电路 第七章 半导体存储器 第八章 脉冲波形的产生与整形 第九章 数/模与模/数转换电路

    零基础学VisualBasic+SQLServer 光盘 源文件 第10-20章.rar

    第二篇 SQL Server基础篇 第11章 安装与配置SQL Server服务器 第12章 管理SQL Server 2000 第13章 数据库和表维护 第14章 视图 第15章 存储过程和自定义函数 第16章 触发器 第三篇 数据库开发篇 第17章 SQL语言基础 ...

Global site tag (gtag.js) - Google Analytics