Oracle触发器Trigger2行级

create table trigger_t2(
id int,
name varchar(30),
age int
);
/*
--创建一个before update的触发器-控制每一行,行级
--只有行级的才会有:new,:old
*/
create or replace trigger t4
   before update of age on trigger_t2
   for each row
declare
begin
  dbms_output.put_line('以前的值:  '||:old.age||'  现在的值    '||:new.age);
  if :old.age>=:new.age then
       raise_application_error(-20001,'修改以后年龄,不能小于等于原来的年龄');
  end if;
end;
insert into  trigger_t2 values(1,'Jack',13);

set serveroutput on;
update  trigger_t2 set age=19 where id=1;
--以前的值:  13  现在的值    19
--不修改age,修改name
set serveroutput on;
update   trigger_t2 set name='Tom',id='2' where id=1;
原文地址:https://www.cnblogs.com/xiaweifeng/p/3679181.html