• oracle触发器中增删改查本表


    oracle触发器中增删改查本表
    (1)只有before insert触发器中才可以查询或更新本表
    create or replace trigger tri_test_ins
    before insert
    on test
    for each row
    declare
      v_cnt integer;
    begin
     select 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_ins
    after update
    on test
    for each row
    declare
      v_cnt integer;
      PRAGMA AUTONOMOUS_TRANSACTION;
    begin
     begin
            select count(*) into v_cnt from test;
            dbms_output.put_line('test count:'||to_char(v_cnt));
     end;
    end;
    (4)使用自治事务可以实现新增或删除本表的记录。这种情况一般不会用到。

  • 相关阅读:
    4.函数
    3.文件操作及编码解码补充
    2.列表字符串字典元组集合
    1.杂项三元运算及字符编码
    python-数据类型补充及文件处理操作
    python-day02数据类型-字符串和列表的操作
    python-day01
    DOM
    javascript基本
    CSS几个属性
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3192321.html
Copyright © 2020-2023  润新知