oracle 的行级触发器

create or replace trigger tri_insertAcceptList
after insert on STDOC.DEVELOPER
for each row
  DECLARE
   v_idvalues number;

begin
 STDOC.PROCKEYCODE(v_idvalues);
 INSERT INTO ACCEPTLIST(KEYCODE,Acceptdate) VALUES(v_idvalues,SYSDATE);
end;
时间: 2024-11-05 12:18:21

oracle 的行级触发器的相关文章

行级触发器

for each row表示创建行级触发器,如果省略表示创建语句级触发器 行级触发器的作用在于DML语句执行时,影响多少条记录,触发器就执行多少次 语句级触发器的作用在于不管DML语句执行时影响多少条记录,触发器只执行一次 行级触发器语法: create or replace trigger 触发器名 before/after 动作 on 作用范围(表) for each row :new 新添加的一条记录或者更新的一条记录 :old刚删除的那条记录或更新前的一条记录 -- 触发器 + 序列 实

oracle学习----行级锁的理解

通过实验来理解行级锁的发生 1.创建需要的表 SQL> conn / as sysdba已连接.SQL> create table dept as select * from scott.dept; 表已创建. SQL> create table emp as select * from scott.emp; 表已创建. SQL> alter table dept add constraint dept_pk primary key(deptno); 表已更改. SQL> a

oracle的行级锁与表级锁

1.在操作DML(create,insert,update)语句时,oracle会自动加上行级锁,在select * from table for update [of column][nowait|wait 3]时,oracle也会自动加锁 建议(1)一般在for update 时加nowait,这样就不用等待其他事务执行了,一判断有事务,立马抛出错误. 建议(2)一般的of column都是在多表操作的时候,能锁定其中一个表的某些列,如果还是同一张表的话,并不能锁定某些列 2.表级锁 表级锁

Oracle 学习笔记 19 -- 触发器和包浅析(PL/SQL)

触发器是存放在数据库中的一种特殊类型的子程序.不能被用户直接调用,而是当特定事件或操作发生时由系统自己主动 调用执行.触发器不能接受參数.所以执行触发器就叫做触发或点火.Oracle事件指的是数据库的表进行的insert .update.delete操作或对视图进行类似的操作. 触发器是很多关系数据库系统都提供的一项技术.在Oracle系统里,触发器类似过程和函数,都有声明,运行和异常 处理过程的PL/SQL块. 触发器的组成: 触发事件:在何种情况下触发:比如:INSERT , UPDATE

oracle 学习笔记之触发器

说明 数据库触发器是一个与表相关联的.存储的PL/SQL程序.每当一个特定的数据操作语句(Insert,update,delete)在指定的表上发出时,Oracle自动地执行触发器中定义的语句序列. 触发器的类型 语句级触发器:在指定的操作语句操作之前或之后执行一次,不管这条语句影响了多少行 . 行级触发器(FOR EACH ROW):触发语句作用的每一条记录都被触发.在行级触发器中使用old和new伪记录变量, 识别值的状态. 触发器可用于:1)数据确认  2)实施复杂的安全性检查.3)做审计

Oracle学习笔记十三 触发器

简介 触发器是当特定事件出现时自动执行的存储过程,特定事件可以是执行更新的DML语句和DDL语句,触发器不能被显式调用. 触发器的功能: 1.自动生成数据 2.自定义复杂的安全权限 3.提供审计和日志记录 4.启用复杂的业务逻辑 创建触发器的语法 CREATE [OR REPLACE] TRIGGER trigger_name AFTER | BEFORE | INSTEAD OF [INSERT] [[OR] UPDATE [OF column_list]] [[OR] DELETE] ON

Oracle锁表 行级锁 表级锁 行级锁

Oracle锁表  行级锁  表级锁 ---- 行被排他锁定 ----在某行的锁被释放之前,其他用户不能修改此行          ----使用 commit 或 rollback 命令释放锁 ----Oracle 通过使用 INSERT.UPDATE 和 SELECT-FOR UPDATE 语句自动获取行级锁 SELECT-FOR UPDATE 子句  ―在表的一行或多行上放置排他锁  ―用于防止其他用户更新该行 ―可以执行除更新之外的其他操作 ―select * from goods whe

一次oracle行级锁导致的问题

分析问题:我在plsql/developer是用的system用户连接的数据库,而在crt用  sqlplus / as  sysdba 连接数据库,是sys用户.现在在plsql/developer中update了一个字段,没有commit,就直接在CRT上update了另一个字段,导致后者等待,应为已经有了行级锁, 解决问题: .1. 用dba权限的用户查看数据库都有哪些锁 select a.username,a.sid,a.serial#,a.logon_timefrom v$locked

oracle ORA_ROWSCN 行记录的更新时间

在这介绍两个oracle 10G开始提供的一个伪列ORA_ROWSCN,它又分为两种模式一种是基于block,这是默认的模式,还有一种是基于row上,这种模式只能在建里表时指定ROWDEPENDENCIES,不可以通过后期的alter table ,同时会给数据库带来性能负载每个Block在头部是记录了该block最近事务的SCN的,所以默认情况下,只需要从block头部直接获取这个值就可以了,不需要其他任何的开销,Oracle就能做到这一点.但是这明显第一种模式是scn是不准确的,因为不可能每