管理触发器

1、显示触发器信息

建立触发器时,ORACLE会将触发器信息写入到数据字典中,通过查询数据字典视图USER-TRIGGERS,可以显示当前用户所包含的所有触发器信息。

SQL> select trigger_name,status from user_triggers ;

TRIGGER_NAME                   STATUS
------------------------------ --------
TR_INSTEAD_OF_DEPT_EMP         ENABLED
TR_UPDATE_CASCADE              ENABLED
TR_CHECK_SAL                   ENABLED
TR_SAL_CHANGE                  ENABLED
TR_EMP

2、禁止触发器
    禁止触发器是指是使触发器临时失效。当触发器处于ENABLED状态时,如果在表上执行DML操作,则就会触发相应的触发器。如果基于INSERT操作建立了触发器,当使用SQL*Loader装载大批量数据时会触发触发器。为了加快数据装载速度,应该在装载数据之前禁止触发器。

SQL> alter trigger tr_check_sal disable;

Trigger altered

3、激活触发器
    激活触发器是指使触发器重新生效。当使用SQL*Loader装载了数据之后,为了使被禁止的触发器生效,应该激活触发器。

SQL> alter trigger tr_check_sal enable;

Trigger altered

4、禁止或激活表的所有触发器
    如果在表上同时存在多个触发器,那么使用ALTER TABLE命令可以一次禁止或激活所有触发器。

SQL> alter table emp disable all triggers;

Table altered

SQL> alter table emp enable all triggers;

Table altered

5、重新编译触发器
    当使用ALTER TABLE命令修改表的结构(例如增加列,删除列)时,会使得其触发器转变为INVALID状态。在这种情况下,为了使得触发器继续生效,需要重新编译触发器。

SQL> alter trigger tr_check_sal compile;

Trigger altered

6、删除触发器
    当触发器不再需要时,可以使用DROP TRIGGER命令删除触发器。注意,在表上的触发器越多,对于DML操作的性能影响越大,所以一定要适度使用触发器。

SQL> drop trigger tr_shutdown;

Trigger dropped

SQL> drop trigger tr_startup;

Trigger dropped

管理触发器

时间: 2024-10-30 05:32:05

管理触发器的相关文章

ORACLE触发器的管理与实际应用【weber出品】

一.INSTEAD OF触发器 对于简单的视图可以执行INSERT,UPDATE和DELETE操作,但是对于复杂视图,不允许直接执行INSERT,UPDATE,DELETE操作,当视图出现以下任何一种情况时,都不允许直接执行DML操作,如下: 具有集合操作符(UNION,UNION ALL,INTERSECT,MINUS) 具有分组函数(MIN,MAX,SUM,AVG,COUNT等) 具有GROUP BY,CONNECT BY或START WITH等子句 具有DISTINCT关键字 具有连接查询

mysql批处理/触发器/事务管理/存储过程

mysql里的批处理(sql语句) 格式: l mysql –u user –p < sql_file 表示从某个文件里执行sql语句 l mysql –u user –p < sql_file > out_file 表示从某个文件里执行,并将执行结果保存到out_file文件之中 举个例子: 小王每天早晨来之后,都需要查询班级共有多少人,还要查本学期共有几门课程,还要查询最近的考试成绩........需要做很多操作 sql.txt里  use pingtai;   //选择数据库 se

达梦数据库的触发器管理

达梦数据库的触发器管理 触发器类型有分为操作前触发.操作后触发.DLL事件触发.系统事件触发.时间触发等等,触发器与存储过程的区别是触发器不能单独执行调用,而是在用户执行特定语句时自动触发执行触发器.以下举例常见的插入事件.更新事件做演示. 1.创建BEFORE触发器测试准备工作创建触发器前先建两张测试表(数据表和结果表),目的在数据表插入前就执行触发器里的语句,触发器里的语句是统计当前数据库的记录数.create table tab_before(id int, name varchar(20

触发器操作

创建触发器 语法 create trigger tgr_name on table_name with encrypion –加密触发器 for update... as Transact-SQL # 创建insert类型触发器 --创建insert插入类型触发器 if (object_id('tgr_classes_insert', 'tr') is not null) drop trigger tgr_classes_insert go create trigger tgr_classes_

sqlserver 触发器

 何为触发器? 在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序.触发器是一个特殊的存储过程,它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活.所以触发器可以用来实现对表实施复杂的完整性约束. SQL Server为每个触发器都创建了两个专用表:Inserted表和Deleted表.Deleted和Inserted分别代表出发事件的表“旧的一条记录”和“新的一条记录”.这两个表由系统来维护﹐它们存在于内存中而不是在数据库中.这两

开发PL/SQL子程序和包及使用PL/SQL编写触发器、在JDBC中应用Oracle

1.  子程序的各个部分: 声明部分.可执行部分.异常处理部分(可选) 2.子程序的分类: A.  过程 - 执行某些操作 a.  创建过程的语法: CREATE [OR REPLACE]  PROCEDURE  <procedure name> [(<parameter list>)]  IS|AS <local variable declaration> BEGIN <executable statements> [EXCEPTION <excep

触发器创建删除等操作

一.创建一个简单的触发器 触发器是一种特殊的存储过程,类似于事件函数,SQL Server™ 允许为 INSERT.UPDATE.DELETE 创建触发器,即当在表中插入.更新.删除记录时,触发一个或一系列 T-SQL语句. 触发器可以在查询分析器里创建,也可以在表名上点右键->“所有任务”->“管理触发器”来创建,不过都是要写 T-SQL 语句的,只是在查询分析器里要先确定当前操作的数据库. 创建触发器用 CREATE TRIGGER CREATE TRIGGER 触发器名称ON 表名FOR

sql复习3之事务管理

事务管理: 单个工作单元称为事务,我们将若干条sql命令组合在一起,形成存储过程.触发器等,利用存储过程和触发器可以进行事务管理. ? 编程基础介绍:函数.程序设计语句等. 程序设计语句: 1.begin ......end 中间插入若干条sql语句,我们将其视为一个单元. 2.跳转语句(goto语句): goto语句可以使程序跳到带有标识符的指定位置继续执行. 3.条件分支语句(if --- else): ? --利用条件分支语句和跳转语句求出1到5之和并输出 declare @sum int

MySQL事务及触发器

目录(?)[+] 事务 提交或回滚 常见的事务指令 事务的特点ACID 触发器 创建触发器 管理触发器 事务 create table swpu( id int primary key auto_increment, money decimal(10,2) comment '学费' ); insert into swpu values(null,5000); create table swpu_stu( id int primary key auto_increment, stu_money d