如何查询一个表最后插入的行
如何查询一个表最后插入的行
table a ,有b ,c两列
如何查询最后插入的b='ok'的列
问题点数:100、回复次数:8Top
1 楼cenlmmx(学海无涯苦作舟)回复于 2006-03-04 19:09:31 得分 25
除非你有字段做标记(比如时间或Sequence),否则是没有可能的.
Top
2 楼skying1(1年轻而流浪)回复于 2006-03-04 21:29:25 得分 10
oracle写磁盘的时候有顺序的吗?
如果有顺序,那看看ROW_IDTop
3 楼cenlmmx(学海无涯苦作舟)回复于 2006-03-04 22:01:11 得分 10
不行的,如果delete的extent被系统重用,取rowid就毫无意义.Top
4 楼Jeremyzhou(Jeremy)回复于 2006-03-05 09:54:23 得分 20
你的表主键是用sequence做的么
如果是
先求 sequence的当前值
然后找到最后一列
但是有个条件是最后一列是插入成功的Top
5 楼Jeremyzhou(Jeremy)回复于 2006-03-05 09:56:30 得分 10
seq_name.currentval 得到当前值
select b,c from a where b=seq_name.currentval
大概是这样,快要上课了
没有验证 你试一下。
不好意思Top
6 楼DeluxWorld(曾经的你)回复于 2006-03-05 11:41:11 得分 5
只能用sequence来做了~Top
7 楼standist()回复于 2006-03-05 13:11:14 得分 0
非常感谢
但是好像没有解决
如何查询最后插入的b='ok'的列
Jeremyzhou(Jeremy)所说的只能得到最后插入的列,不能解决满足某个条件插入的列Top
8 楼boydgmx(授人以鱼不如授人以渔(baidu&google))回复于 2006-03-05 14:25:49 得分 20
如果你用的是序列,那么 select max(id) from tbl where b='ok' 就可以得到最后插入的满足条件的行。Top




