永发信息网

如何在oracle数据库中查找最后一条插入的数据

答案:6  悬赏:80  手机版
解决时间 2021-11-14 02:03
  • 提问者网友:疯孩纸
  • 2021-11-13 21:01
如何在oracle数据库中查找最后一条插入的数据
最佳答案
  • 五星知识达人网友:老鼠爱大米
  • 2021-11-13 21:31
1、对于提交(最后一次操作commit了)的话可以查询那个提交段
SELECt 列名1,列名2……
FROM 表名 VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE where
VERSIONS_STARTTIME IS NOT null ORDER BY VERSIONS_STARTTIME DESC;
查出来的第一条就是最后改变的数据
2、如果表里面有序列或固定的排序字段可按倒排序后取第一条
where rownum<2 order by 排序字段 desc
3、还有另外一种办法就是利用ORACLE伪列rowid
select * from tbl t1 where t1.rowid=(select max(rowid) from tbl t2)
4、在redo log中找到对应相关的表的插入语句,但是这样找到的是sql语句,而不是数据。查redo log得使用log miner工具
全部回答
  • 1楼网友:煞尾
  • 2021-11-14 02:45

有以下几个方法,供您参考。

1、对于提交(最后一次操作commit了)的话可以查询那个提交段SELECt

列名1,列名2……FROM 表名 VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE where VERSIONS_STARTTIME IS NOT null ORDER BY VERSIONS_STARTTIME DESC;查出来的第一条就是最后改变的数据

2、如果表里面有序列或固定的排序字段可按倒排序后取第一条where rownum<2 order by 排序字段 desc

3、还有另外一种办法就是利用ORACLE伪列rowid

select * from tbl t1 where t1.rowid=(select max(rowid) from tbl t2)

4、在redo log中找到对应相关的表的插入语句,但是这样找到的是sql语句,而不是数据。查redo log得使用log miner工具。

这是几项常用的方法,希望我的回答能给您带来帮助。

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。

  • 2楼网友:旧脸谱
  • 2021-11-14 01:43
看你数据库表结构吧

1 根据时间
2根据 rowid
  • 3楼网友:詩光轨車
  • 2021-11-14 01:37
倒序查第一个就行了呗
  • 4楼网友:雪起风沙痕
  • 2021-11-14 00:04
如果你的表有"插入时间"这样的字段,就找时间最大的记录
如果没有的话,就得查redo log了,在redo log中找到对应相关的表的插入语句,但是这样找到的是sql语句,而不是数据。查redo log得使用log miner工具。追问时间最大?怎么表示呢?
  • 5楼网友:不想翻身的咸鱼
  • 2021-11-13 22:44
表里面是否有序列?是否有固定的排序字段?
如果有就好办了。排序后取第一条

select * from tbl t1 where t1.rowid=(select max(rowid) from tbl t2)

这样不知道是否可以。因为每次插入毕竟ID是不变的,而且递增
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯