ORACLE and TRIGGERS (inserted, updated, deleted)

后端 未结 4 785
小鲜肉
小鲜肉 2020-12-14 02:00

I would like to use a trigger on a table which will be fired every time a row is inserted, updated, or deleted.

I wrote something like this:

CREATE o         


        
4条回答
  •  抹茶落季
    2020-12-14 02:23

    The NEW values (or NEW_BUFFER as you have renamed them) are only available when INSERTING and UPDATING. For DELETING you would need to use OLD (OLD_BUFFER). So your trigger would become:

    CREATE or REPLACE TRIGGER test001
      AFTER INSERT OR DELETE OR UPDATE ON tabletest001
      REFERENCING OLD AS old_buffer NEW AS new_buffer 
      FOR EACH ROW WHEN (new_buffer.field1 = 'HBP00' OR old_buffer.field1 = 'HBP00') 
    

    You may need to add logic inside the trigger to cater for code that updates field1 from 'HBP000' to something else.

提交回复
热议问题