是否可以使用rowid执行oracle表回滚?

时间:2012-01-13 16:06:56

标签: oracle rowid

我正在使用rowId执行oracle表回滚:

所以在每次数据注入之前,我记录表的最大rowid。 如果出现任何问题,我将从表格中删除rowid> max rowid记录。

执行删除后,我仍然可以看到注入的记录。

请咨询!

感谢, 理查德

1 个答案:

答案 0 :(得分:3)

ROWID是:

  

数据库中行的全局唯一地址。

标识符将针对每个新行递增。如果已删除具有此ROWID的行,则新行可以使用先前使用的ROWID。

另请注意,Oracle可以重用已为新行释放的旧块(这会导致较低的ROWID)。 Oracle还可以在另一个数据文件中获取扩展数据块,文件编号低于上一个ROWID的文件。在大多数情况下,您无法精确控制新行的物理位置,因此您不应该依赖ROWID增加。

最后,您不应该依赖于ROWID的当前实现,它可能会在将来的版本中发生变化。

您可以使用序列或时间戳列来标识新记录。甚至是一个标志栏。