如果你的表非常大,那查询最新添加的一条记录就尽量让ORACLE走主键索引。
select * from table_name where id in (select max(id) from table_name);
这样ORACLE会走索引快速扫描得出最后一条ID的值,然后通过唯一索引得出最后一条记录,这样效率较高。
SELECT * FROM (
SELECT * FROM TBL_TEST T
ORDER BY T.TIME DESC
) WHERE ROWNUM < 2
取rownum为1的也就是小于2的就可以
1、要求很精确地话只能用程序实现了。
2、也可以使用oracle的伪劣ORA_ROWSCN。
select * from (select t.*,ORA_ROWSCN oscn from t1 t ) where oscn =(select max(ora_rowscn) from t1) ;
3、只查最近的,可以查询flashback_transaction_query视图
SELECT * FROM (SELECT T.*,ROWNUM RN FROM TABLE_NAME T ORDER BY ROWNUM DESC ) WHERE ROWNUM=1