17,382
社区成员




create or replace trigger tri_emp
before update
on employees
for each row
begin
if :new.salary>:old.salary then
dbms_output.put_line(:new.first_name||'工资调高了');
elsif :new.salary<:old.salary then
dbms_output.put_line(:new.first_name||'工资调低了');
else
dbms_output.put_line(:new.first_name||'工资没有调整');
end if;
end tri_emp;
SQL>
SQL> create table employees(salary int, first_name varchar(10));
Table created
SQL> insert into employees values(100,'zhangsan');
1 row inserted
SQL> create or replace trigger tri_emp
2 before update
3 on employees
4 for each row
5 begin
6 if :new.salary>:old.salary then
7 dbms_output.put_line(:new.first_name||'工资调高了');
8 elsif :new.salary<:old.salary then
9 dbms_output.put_line(:new.first_name||'工资调低了');
10 else
11 dbms_output.put_line(:new.first_name||'工资没有调整');
12 end if;
13 end tri_emp;
14 /
Trigger created
SQL> set serverout on;
SQL> update employees set salary = 200;
zhangsan工资调高了
1 row updated
SQL> update employees set salary = 100;
zhangsan工资调低了
1 row updated
SQL> update employees set salary = 100;
zhangsan工资没有调整
1 row updated
SQL> drop table employees purge;
Table dropped
SQL>