Oracle触发器中增删改查本表(1)只有before insert触发器中才可以查询或更新本表create or replace trigger tri_test_insbefore inserton testfor each rowdeclarev_cnt integer;beginselect count(*) into v_cnt from test;dbms_output.put_line("test count:"||to_char(v_cnt));update test set a9="99";end;执行insert后,只有当前插入的记录值不是99,其它的记录都被更新成了99。(2)before/after update、before/after delete、after insert5种情况都不可以查询或更新本表。(3)使用自治事务可以实现任意触发器查本表。但不能实现在自治事务中更新本表。查询本表的情况是最常见的。create or replace trigger tri_test_insafter updateon testfor each rowdeclarev_cnt integer;PRAGMA AUTONOMOUS_TRANSACTION;beginbeginselect count(*) into v_cnt from test;dbms_output.put_line("test count:"||to_char(v_cnt));end;end;(4)使用自治事务可以实现新增或删除本表的记录。这种情况一般不会用到。
相关阅读:Oracle触发器的使用 http://www.linuxidc.com/Linux/2013-03/81396.htmOracle触发器给表自身的字段重新赋值出现ORA-04091异常 http://www.linuxidc.com/Linux/2013-07/87075.htmOracle创建触发器调用含参数存储过程 http://www.linuxidc.com/Linux/2013-02/80018.htmOracle触发器查询统计本表 http://www.linuxidc.com/Linux/2013-01/77671.htmMySQL 触发器应用案例 http://www.linuxidc.com/Linux/2013-02/79861.htm更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12Oracle联机日志恢复案例使用倒序索引提升ORDER BY DESC性能相关资讯 Oracle触发器
- Oracle数据库中的触发器 (03/11/2015 10:12:29)
- Oracle利用触发器实现自增列 (02/10/2015 11:27:09)
- Oracle中的System Triggers(DDL触 (02/25/2014 19:33:55)
| - Oracle中的触发器 (02/14/2015 11:22:03)
- Oracle触发器问题解决一例 (11/11/2014 17:36:10)
- Oracle 触发器更新基表不同记录所 (12/31/2013 10:01:29)
|
本文评论 查看全部评论 (0)