定义的触发器针对插入,删除和更新。
BEFORE INSERT OR DELETE OR UPDATE 触发器运行以后,
如何判断是插入,是删除,还是更新呢?

解决方案 »

  1.   

    updating\deleting\inserting
    例子:
    if inserting then
      ...
    end if;
      

  2.   

    多谢,
    那么我如何区分更新这条记录和更新这个条记录的一个字段呢?
    一个是BEFORE UPDATE  一个是BEFORE UPDATE OF XXX
    能够写在一起吗?下面判断的时候如何做呢?
    if updating then能区分开这两种马?
      

  3.   

    CREATE OR REPLACE TRIGGER 名称
    AFTER UPDATE
    OF 字段1,字段2 ... ON 表名
    REFERENCING NEW AS NEW OLD AS OLD
    FOR EACH ROW
    DECLARE
        integrity_error  EXCEPTION;
        声明变量
    BEGIN
    主题语句
    EXCEPTION
        WHEN integrity_error THEN
           BEGIN
          -- 例外信息
           END;
    END;
      

  4.   

    楼上的回答只是如何触发更新各个字段的写法。
    我想要得是在一个trigger下分两种情况处理,一种是针对update(任意字段),一种是针对update of 字段(指定的字段)
      

  5.   

    用触发器谓词deleting,updating,inserting
      

  6.   

    declare trigger tri_emp
    before insert or delete or update on emp for each row
    begin
      if inserting then
         dbms_output.put_line('插入操作');
      elsif deleting then
         dbms_output.put_line('删除操作');
      elsif updating then
         dbms_output.put_line('更新操作');
      end if;
    end;