要在触发器中判断一列是否更新,语法怎么写?

解决方案 »

  1.   

    if updating(col1) then
       --你的代码
    end if ;
      

  2.   

    触发器触发使用有两种:after和before。CREATE [OR REPLACE] TIGGER 触发器名
    [before|after] --触发时间
    [insert|update|delete] --触发事件
    ON 表名
    [FOR EACH ROW]
    BEGIN
        pl/sql语句
    END;update:数据库修改会触发此触发器;
      

  3.   

    我用
    if  :new.col1<>:old.col1 then
    end if;
    行吗?语法也没错
      

  4.   

    另外也可以将整个触发器声明时限定在某一字段(col1)更新触发,如:
    create or replace trigger trg_test 
    after update of col1 on table1
    for each row
    declare
    --你的声明
    begin
      --你的代码
    end;
      

  5.   

    create or replace trigger trg_update
    after update on 表名
    begin
     if updating('字段1') then 
        dbms_output.put_line('字段1更新了');
     endif;
    end;