触发器案例:
create or replace trigger insert_update_emp_trg
before insert or update
on emp
for each row
declare
can_not_update exception;
begin
if inserting then
select emp_seq.nextval into :new.empno from dual;--按行插入定义好的序列
end if;
if updating then
if :old.empno=7788 then
raise can_not_update;--当要更新管理员的时候,跑出异常终止更新。
end if;
end if;
end;
总结:
触发器:它是一种特殊的存储过程,
当特定事件发生时候自动调用。外号(事件监听器)。
功能:1,自动生成数据,比如你插入一条数据不符合要求,可以通过触发器来更改将要插入的缓冲区的临时数据更改成自己想要的数据,实现生成数据。
2,自定义复杂的安全权限,可以通过:new ,:old中的列值来判断数据是否安全,然后处理。
3,审计和日志记录,触发器可以通过after类型的触发器,来完成更新后的日志安全记录。
4,启用复杂的业务逻辑。
分类:1按事件分{DDL,DML,系统事件触发器}
2按时机分{before,after,instead of }后者只能用在视图上。
3按影响行数分{行级触发器,语句级触发器(表级)}
特殊的行变量{:old 存放原来的数据,:new存放新数据} 只能用在行级触发器中。
分享到:
相关推荐
调试Oracle触发器是开发和维护数据库应用程序时的重要步骤,可以帮助我们找出潜在的错误和逻辑问题。下面我们将详细探讨如何调试Oracle触发器。 1. **PL/SQL Developer工具调试**: - PL/SQL Developer是一款强大...
总之,"Oracle触发器实时调用Java中HTTP接口"是一个数据库与应用程序实时通信的示例,涉及Oracle的触发器、存储过程和UTL_HTTP包,以及Java HTTP服务器的设计和实现。这样的设计需要对Oracle PL/SQL和Java网络编程有...
在深入探讨如何利用Oracle触发器备份表数据之前,我们首先需要理解几个关键概念:Oracle数据库、触发器以及备份策略。Oracle数据库是全球领先的数据库管理系统之一,以其强大的性能、可靠的安全性和丰富的功能受到...
3. **触发器示例**: - **防止负值插入**: ```sql CREATE TRIGGER prevent_negative_values BEFORE INSERT OR UPDATE ON table_name FOR EACH ROW BEGIN IF :new.column_name RAISE_APPLICATION_ERROR(-...
Oracle触发器可以响应数据表的DML(数据操纵语言)事件,如INSERT、UPDATE或DELETE,也可以响应DDL(数据定义语言)事件,如CREATE、ALTER或DROP等。在本文件中,主要讨论的是针对数据表UPDATE操作的触发器执行顺序...
### Oracle触发器语法要点 #### 一、触发器概述 Oracle触发器是一种存储过程,它在特定的数据库事件(如INSERT、UPDATE或DELETE)发生时自动执行。触发器可以用于实施复杂的业务规则、数据完整性检查或者自动生成...
### 触发器示例 以下是一个具体的触发器创建示例: ```sql CREATE OR REPLACE TRIGGER biu_emp_deptno BEFORE INSERT OR UPDATE OF deptNo ON Emp FOR EACH ROW WHEN (New.deptNo <> 40) BEGIN :New.comm := 0; ...
3. **触发器示例** 创建一个更新员工薪水后记录审计日志的触发器: ```sql CREATE OR REPLACE TRIGGER log_salary_change AFTER UPDATE OF salary ON employees FOR EACH ROW WHEN (NEW.salary > OLD.salary)...
### Oracle触发器详解 在数据库管理系统中,Oracle触发器是一种特殊类型的存储过程,它自动执行对数据的操作,当特定事件发生时(如插入、更新或删除数据)在数据库表上执行。触发器可以用于实现复杂的数据完整性...
下面是一个具体的触发器示例,该触发器用于防止在周六和周日对`employee`表进行任何插入、更新或删除操作: ```sql CREATE OR REPLACE TRIGGER tr_sec_emp BEFORE INSERT OR UPDATE OR DELETE ON employee BEGIN ...
Oracle触发器是数据库管理系统Oracle中的一个重要特性,它允许开发者在特定的数据操作语言(DML)事件发生时自动执行预定义的PL/SQL代码。触发器主要用于实现数据的完整性、一致性控制,以及执行复杂的业务规则。...
以下是一个简单的触发器创建示例,用于更新订单表中的客户信息: ```sql CREATE OR REPLACE TRIGGER bj_customer BEFORE UPDATE ON customer FOR EACH ROW BEGIN UPDATE order SET cu_no = :new.cu_no, cu_name ...
3. **Oracle触发器**:触发器是一种特殊的存储过程,会在特定的数据库事件(如INSERT、UPDATE或DELETE)发生时自动执行。`V_InsertEquip.sql`可能包含一个插入触发器的示例,这种触发器在向特定表中插入新数据时被...
### Oracle触发器调用存储过程 #### 知识点概览 1. **触发器基本概念** 2. **存储过程简介** 3. **触发器如何调用存储过程** 4. **示例代码详解** 5. **注意事项** 6. **自主事务(Autonomous Transaction)** 7. ...
以下是一个简单的示例,展示了如何创建一个在插入新记录时更新另一列的触发器: ```sql CREATE TRIGGER update_column_trigger BEFORE INSERT ON table_name FOR EACH ROW BEGIN IF :new.column1 = 'some_value' ...
在这个场景中,我们讨论的是如何利用Oracle触发器来实现二维码的生成与存储。 首先,"oracle触发器实现二维码"这个标题意味着我们将结合Oracle数据库和二维码技术。二维码(Quick Response Code,简称QR Code)是一...
Oracle 触发器的示例: * 例一:行级触发器之一,用于插入员工记录时自动分配员工编号。 * 例二:行级触发器之二,用于更新员工记录时检查员工状态。 * 例三:INSTEAD OF 触发器,用于在视图上执行插入、更新或...
以上三个示例详细展示了如何在Oracle数据库中创建和使用触发器。触发器能够自动化处理数据变更,简化开发人员的工作流程,同时确保数据的一致性和准确性。通过这些示例,我们可以看到触发器的强大功能及其在实际应用...
本文将深入探讨如何利用Oracle触发器来实现这一功能,同时也会讲解背后的原理与实践步骤。 ### Oracle触发器与序列 在Oracle中,触发器是一种存储过程,它被定义为当特定事件(如数据的插入、更新或删除)发生时...