是否存在强制Oracle(在插入/更新/删除时)利用row_num分析函数分配行号的方法,以后可以通过简单调用rownumber = X?在Oracle数据库中强制内部行号以匹配row_num分析函数
示例代码来说明我的意思:
select foo,bar,baz
row_number() over (partition by bang order by some_date desc) rn
from my_table
上面的查询将基于分区子句指定的行号。
现在,当我询问,我想其中ROWNUMBER = XI可以这样做:
select foo,bar,baz
from my_table
where rownumber=1
这样做的原因是为了避免查询开销,并且将其推回发生远不频频在DDL语句系统。所以我的问题,是这样的可能吗?
COMMENT
每一个新的插入/更新/删除可能会更新表的每一个 行......这是一个潜在的大量日志(和 锁定)的。如果您的数据基本上是静态的,那么每次加载或更新时都要重新生成一个rownumber。
如果我们删除了更新/删除的约束条件,并且我不相信这个推理在特定时间对象驱动的情况下仍然存在。
每一个新的插入/更新/删除可能会更新表的每行......这是一个潜在的大量日志(和锁定)的。如果您的数据基本上是静态的,那么每次加载或更新时都会重新生成一个rownumber。 – Mat
@Mat所以让我们删除更新和删除的约束。如果我只是插入,其中驱动力实际上是时间戳/日期,那么是什么? – Woot4Moo
那么,你在做实际插入之前计算rownumber(对并发性有很多照顾)。 – Mat