1、建表 a,b 语句如下:
create table a(id number(10) not null,name varchar2(256));
create table b(id number(10) not null,name varchar2(256),update_date date,flag int );--flag 0:新增 1:修改
2、建行级触发器如下:
create or replace trigger tr_save_change
after insert or update or delete on a
for each row
begin
case when inserting then
insert into b(id,name,update_date,flag)
values(:new.id,:new.name,sysdate,0);
when updating then
update b set name=:new.name,update_date=sysdate,flag=1 where id=:old.id;
when deleting then
delete from b where id=:old.id;
end case;
end;
3、测试如下:
insert into a(id,name) values(1,'aaa');
commit;
--查看b表
select * from b;
insert into a(id,name) values(2,'bbb');
commit;
--查看b表
select * from b;
update a set name='abab' where id=2;
commit;
--查看b表
select * from b;
delete from a where id=1;
commit;
--查看b表
select * from b;
分享到:
相关推荐
1、行级触发器不支持 ...所以想要触发器对自身表数据做修该,则用行级触发器得到 :new 和 :old对象中的相关数据,然后将这样的数据保存到 package中,然后在语句级触发期中调用 package包中保存的数据,进行更新操作
"Oracle触发器语法详解" Oracle 触发器是一种特殊的存储过程,它在插入、删除或修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力。触发器可以基于数据库的值使用户具有操作...
"Oracle触发器调用存储过程" Oracle触发器可以调用...Oracle触发器调用存储过程可以通过使用自治事务来解决事务隔离性问题,确保业务逻辑的正确执行。但是,需要注意自治事务的使用规则和注意事项,以避免出现问题。
理解并正确使用Oracle触发器,可以帮助我们更好地管理和保护数据库中的数据,同时要注意合理使用,以避免潜在的问题。通过学习和实践,我们可以将触发器作为工具箱中的一项有力武器,为数据库的健壮性和稳定性保驾...
### Oracle触发器语法要点 #### 一、触发器概述 Oracle触发器是一种存储过程,它在特定的数据库事件(如INSERT、UPDATE或DELETE)发生时自动执行。触发器可以用于实施复杂的业务规则、数据完整性检查或者自动生成...
总之,“Oracle触发器与存储过程高级编程”是数据库开发中的重要技能,理解它们的工作原理、如何创建和使用,以及何时应该避免使用,对于提升数据库管理效率和数据安全性至关重要。通过实践和学习,你可以更好地掌握...
Oracle触发器可以响应数据表的DML(数据操纵语言)事件,如INSERT、UPDATE或DELETE,也可以响应DDL(数据定义语言)事件,如CREATE、ALTER或DROP等。在本文件中,主要讨论的是针对数据表UPDATE操作的触发器执行顺序...
如果需通过触发器设定插入行中的某列值,则为了访问“新(new)”值,需使用一个触发器 before insert,使用 after insert 则不行。 4. Instead of 触发器命令 使用它告诉 oracle 应执行什么操作。 以上四种大类...
[REFERENCING [NEW AS new_row_name] [OLD AS old_row_name]] [FOR EACH ROW] [WHEN (condition)] [DECLARE variable_declaration] BEGIN statements; [EXCEPTION exception_handlers] END [trigger_name]; ``` ...
- `:new` 和 `:old` 是两个伪记录,分别代表新值和旧值,在`UPDATE`操作中特别有用。 #### 触发器的管理和控制 除了创建触发器外,Oracle还提供了丰富的命令来管理它们: - **查看触发器状态**:使用 `SELECT ...
### Oracle触发器详解 在数据库管理系统中,Oracle触发器是一种特殊类型的存储过程,它自动执行对数据的操作,当特定事件发生时(如插入、更新或删除数据)在数据库表上执行。触发器可以用于实现复杂的数据完整性...
Oracle触发器是数据库管理系统Oracle中的一种重要特性,用于在特定数据操作(如插入、删除、更新)发生时自动执行预定义的SQL语句或PL/SQL代码块。这些语句或代码块通常用来实现复杂的数据完整性规则、安全性控制、...
1. `:NEW` 和 `:OLD`:这两个是Oracle触发器中的特殊变量,`:NEW` 代表在DML操作(INSERT、UPDATE)后的新值,`:OLD` 则代表在DML操作前的旧值。对于INSERT操作,`:NEW` 表示新插入的行数据;UPDATE时,`:NEW` 是...
Oracle触发器是数据库对象之一,它允许在特定的数据库事件(如INSERT、UPDATE或DELETE)发生时自动执行一段PL/SQL代码。触发器是数据库级的程序,可以在数据更改前或后执行,用来实现复杂的业务规则和逻辑。在这个...
Oracle触发器是数据库管理系统Oracle中的一个重要特性,它允许在特定事件(如数据修改DML操作:INSERT、UPDATE或DELETE)发生时自动执行预定义的PL/SQL代码块。触发器可以用来实现复杂的业务规则,审计跟踪,或者在...
总的来说,Oracle触发器是一种强大的工具,可以用来实现复杂的数据验证、业务逻辑和数据处理,但使用时应谨慎,因为过度使用或设计不当的触发器可能导致性能问题和维护困难。正确理解和运用触发器,对于确保数据库的...
在触发器的PL/SQL代码中,`:NEW` 和 `:OLD` 是两个特殊的记录变量,分别代表在操作后的新行值和操作前的旧行值,它们包含了所有列的信息,方便在触发器中进行比较和操作。 触发器可以组合使用,例如在一个表上创建...
Oracle触发器是Oracle数据库中一种特殊的存储程序,它在满足特定条件时自动执行,用于实现对数据的自动处理。触发器的主要作用是对数据库的DML(Data Manipulation Language)操作如INSERT、UPDATE和DELETE等进行...