简单写了些,仅供参考 create or replace trigger t_test after update on test for each row declare maxid number; pragma autonomous_transaction; begin commit; select max(id) into maxid from test where id<>:old.id; dbms_output.put_line(greatest(maxid,:new.id)); end; ------------------------------------------------------- SQL> set autocommit on; SQL> set serveroutput on; SQL> select * from test; ID ---------- 2 4 7 129SQL> update test set id=130 where id=129; 130已更新 1 行。提交完成。 SQL> update test set id=120 where id=130; 120已更新 1 行。提交完成。 SQL> update test set id=6 where id=120; 7已更新 1 行。提交完成。
create or replace trigger t_test
after update on test
for each row
declare
maxid number;
pragma autonomous_transaction;
begin
commit;
select max(id) into maxid from test where id<>:old.id;
dbms_output.put_line(greatest(maxid,:new.id));
end;
-------------------------------------------------------
SQL> set autocommit on;
SQL> set serveroutput on;
SQL> select * from test; ID
----------
2
4
7
129SQL> update test set id=130 where id=129;
130已更新 1 行。提交完成。
SQL> update test set id=120 where id=130;
120已更新 1 行。提交完成。
SQL> update test set id=6 where id=120;
7已更新 1 行。提交完成。