首页 > 解决方案 > 获取 Oracle 表中最后更新的行

问题描述

如何获取 Oracle 表中最后更新的行?我有一个名为Employees 的表,我将对其进行一些更新。然后我想找出最后更新了哪一行(即最后更新了哪个员工)。

标签: oracleoracle-sqldeveloper

解决方案


最简单的方法

  • 具有字段名称updated类型的表date
  • 每当更新任何其他列时更新列的触发器。

然后

SQL> create table test.t1_trigger ( c1 number, c2 number, updated date );

Table created.

SQL> create or replace trigger test.t1_trg_update
before update of c1,c2 on test.t1_trigger
referencing new as new old as old 
for each row
begin
   :new.updated := sysdate;
end;
/  

Trigger created.

SQL> insert into test.t1_trigger values ( 1 , 1 , null );

1 row created.

SQL> commit ;

Commit complete.

SQL> update test.t1_trigger set c1=2 , c2=2 ;

SQL> commit ;

Commit complete.

SQL> select * from test.t1_trigger ;

        C1         C2 UPDATED
---------- ---------- -------------------
         2          2 05.11.2021 12:18:30

推荐阅读