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;