我正在使用rowId执行oracle表回滚:
所以在每次数据注入之前,我记录表的最大rowid。 如果出现任何问题,我将从表格中删除rowid> max rowid记录。
执行删除后,我仍然可以看到注入的记录。
请咨询!
感谢, 理查德
答案 0 :(得分:3)
ROWID是:
数据库中行的全局唯一地址。
不标识符将针对每个新行递增。如果已删除具有此ROWID的行,则新行可以使用先前使用的ROWID。
另请注意,Oracle可以重用已为新行释放的旧块(这会导致较低的ROWID)。 Oracle还可以在另一个数据文件中获取扩展数据块,文件编号低于上一个ROWID的文件。在大多数情况下,您无法精确控制新行的物理位置,因此您不应该依赖ROWID增加。
最后,您不应该依赖于ROWID的当前实现,它可能会在将来的版本中发生变化。
您可以使用序列或时间戳列来标识新记录。甚至是一个标志栏。