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