oracle触发器更新本表的isdeal字段,首先ti_function表插入内容是isdeal字段默认都为“N”,然后我在这张表上
写一个触发器,即当再次往ti_function表中插入数据时,更新ti_company_register表中的zsjg为ti_function表的nsrmc
与此同时,还要将当前插入ti_function表中的isdeal字段更新为“Y”?这该怎么写?

解决方案 »

  1.   


    begin
        update ti_company_register set zsjg = :new.nsrmc where ...;
        :new.isdeal := 'Y';
    end;
      

  2.   

    :new.isdeal := 'Y';是什么意思啊?
      

  3.   

    倘若插入ti_function这张表的该条记录在ti_company_register表中不存在,要修改插入ti_function表的该条记录的isdeal,怎么处理?是要用if else吗?
    我之前写的触发器如下:create or replace trigger trg_ti_function
      before insert on  ti_function
      for each row
    declare
      
    begin
      if :new.nsrmc is not null then
        update ti_company_regist set manabusi_depart=:new.zsjgdm
        where nsrmc=:new.nsrmc;
        end if;
    end trg_ti_function;
      

  4.   

    :new.isdeal(isdeal的新值的表示法,旧值就用:old.isdeal)
    :=(Oracle的PL/SQL的赋值表达式)整个表达式的意思就是:将'Y'赋给isdeal