触发器是当特定的SQL DML语句,如INSERT、UPDATE或DELETE语句在特定的数据库表上运行时,有数据库自动运行(自动激活)的过程,创建触发器的语法如下:
CREATE [OR REPLACE] TRIGGER trigger_name
{BEFORE | AFTER | INSTEAD OF} trigger_event
ON table_name
FOR EACH ROW[WHEN trigger_condition]
BEGIN
trigger_body
END trigger_name;
OR REPLACE说明如果该触发器已经存在,则用新的触发器代替它,该选项可以用来修改一个现有触发器
trigger_name指定触发器名
BEFORE指定触发器在触发事件运行之前激活。AFTER指定触发器在触发事件运行之后激活。INSTEAD OF指定用触发器代替触发事件的运行
trigger_event指定激活触发器的事件
table_name指定触发器引用的表
FOR EACH ROW指定触发器是一个行级触发器,即当触发器激活时,trigger_body包含的代码会为每一行运行一次。如果忽略了FOR EACH ROW,则触发器是一个语句级触发器,即不管所作用的行有多少,当触发器激活时,trigger_body中包含的代码只运行一次
trigger_condition指定限制触发器实际运行的布尔条件
trigger_body中包含实现触发器功能的SQL和PL/SQL代码
下面的触发器将在emp2表的sal列发生变化时触发,
SET SERVEROUTPUT ON;
CREATE OR REPLACE TRIGGER tri_update_emp2_sal
BEFORE UPDATE OF sal
ON emp2
FOR EACH ROW WHEN (new.sal != old.sal)
BEGIN
dbms_output.put_line('工资被更改');
END tri_update_emp2_sal;
/
执行以下语句时将激活tri_update_emp2_sal触发器:
UPDATE emp2 SET sal = 1200 WHERE empno = '7369';
获取触发器的相关信息:
SELECT * FROM user_triggers WHERE trigger_name = 'TRI_UPDATE_EMP2_SAL';
禁用和启用触发器:
--禁用
ALTER TRIGGER tri_update_emp2_sal DISABLE;
--启用
ALTER TRIGGER tri_update_emp2_sal ENABLE;
删除触发器:
DROP TRIGGER tri_update_emp2_sal;
分享到:
相关推荐
在Oracle数据库系统中,触发器(Triggers)和存储过程(Stored Procedures)是两种非常重要的数据库对象,它们在数据管理、业务逻辑实现以及数据验证等方面起着关键作用。本资源包含与"ORACLE中触发器和存储过程介绍...
### ORACLE中触发器和存储过程介绍 #### 一、Oracle简介 Oracle是一款提供数据库创建与管理功能的强大软件。它不仅支持关系型数据库,还具备对象型数据库的特点。Oracle允许用户利用自带的OUI(Oracle Universal ...
在Oracle 10g环境中,可以创建一个系统级别的触发器,用于阻止非`SYS`用户执行`DROP TABLE`或`TRUNCATE TABLE`命令。 #### 创建触发器脚本 ```sql CREATE OR REPLACE TRIGGER TRIGGER_UNDROPTABLE BEFORE DROP OR ...
Oracle触发器是一种特殊的存储过程,它可以在数据库中自动执行一些操作,主要用于实现数据的完整性、数据的安全性和业务逻辑的实现。触发器可以分为四种类型:DML触发器、DDL触发器、替代触发器和数据库事件触发器。...
调试Oracle触发器是开发和维护数据库应用程序时的重要步骤,可以帮助我们找出潜在的错误和逻辑问题。下面我们将详细探讨如何调试Oracle触发器。 1. **PL/SQL Developer工具调试**: - PL/SQL Developer是一款强大...
【Oracle触发器的创建与使用】是数据库管理中不可或缺的一部分,尤其在Oracle数据库系统中,触发器扮演着关键角色。触发器是一种存储过程,当特定的数据库事件发生时(如INSERT、UPDATE或DELETE操作),它会被自动...
总之,"Oracle触发器实时调用Java中HTTP接口"是一个数据库与应用程序实时通信的示例,涉及Oracle的触发器、存储过程和UTL_HTTP包,以及Java HTTP服务器的设计和实现。这样的设计需要对Oracle PL/SQL和Java网络编程有...
在本文中,我们将详细介绍 Oracle Form 触发器的执行顺序,并对每个触发器的执行过程进行详细的解释。 1. 当打开 FORM 时: 在打开 FORM 时,会执行以下触发器: (1)PRE-FORM:在 FORM 打开时执行的触发器。 (2...
Oracle从Oracle8i开始引入了一类特殊触发器,它们不再局限于传统的DML事件,而是扩展到了系统级别,包括数据库启动触发器、DDL触发器和用户登录/注销触发器。这些触发器为数据库审计提供了新途径,特别是用户登录/...
本文旨在深入解析Oracle触发器中的Before和After两种触发时机,以及它们在数据库管理和维护中的具体应用。 #### 触发器概述 触发器类似于过程和函数,具有声明、执行和异常处理的部分,但其独特之处在于由特定事件...
在Oracle数据库中,触发器是一种存储过程,它被设计为当特定事件(如数据插入、更新或删除)发生时自动执行。触发器可以用于执行复杂的业务逻辑或者数据完整性检查等操作。本文将通过三个具体的例子来展示如何创建和...
1、行级触发器不支持 ...所以想要触发器对自身表数据做修该,则用行级触发器得到 :new 和 :old对象中的相关数据,然后将这样的数据保存到 package中,然后在语句级触发期中调用 package包中保存的数据,进行更新操作
Oracle 创建触发器是一种数据库编程技术,用于在特定的数据库事件发生时自动执行一段代码。在这个实例中,我们看到的是一个防止非本地机器执行DDL(Data Definition Language)操作的触发器,比如`TRUNCATE`、`ALTER...
在`oracle触发器语法.txt`中,你应该能找到关于触发器的创建、删除以及不同类型的触发器(如行级和语句级)的详细语法。 通过学习这些例子,你将能够更好地理解和应用Oracle中的函数、游标和触发器。实践是掌握这些...
Oracle DML 触发器在数据库编程中的应用 Oracle DML 触发器是关系型数据库系统中的一个重要组件,能够自动执行特定的操作,以响应数据库中的变化。本文将对 Oracle DML 触发器的工作原理、类型、使用方法等进行详细...
在ORACLE系统里,触发器类似过程和函数,都有声明,执行和异常处理过程的PL/SQL块。 触发器类型 触发器在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触发器是...
Oracle触发器是Oracle数据库中的一种机制,可以在数据库中执行特定的操作。在本文中,我们将介绍如何使用Oracle触发器调用Java程序。 一、加载Java程序 首先,我们需要将Java程序加载到Oracle数据库中。我们可以...
"Oracle触发器语法详解" Oracle 触发器是一种特殊的存储过程,它在插入、删除或修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力。触发器可以基于数据库的值使用户具有操作...
### Oracle中记录用户登录信息的触发器实例解析 #### 一、背景介绍 在Oracle数据库管理中,确保数据安全是一项至关重要的任务。其中,记录用户的登录信息(如登录时间、用户名和客户端IP地址等)可以帮助管理员更...
Oracle DML 触发器是 Oracle 中的一种机制,它可以在特定的事件发生时自动执行某些操作。触发器可以分为 DML 触发器、系统事件触发器、用户事件触发器、管理触发器等几种。 触发器的组成部分包括触发器名称、触发器...