首页 > 解决方案 > 使用系统属性/列检查“丢失更新”

问题描述

如果我更新一行,系统属性/虚拟列是否会发生变化?或者我是否需要为此目的自定义时间戳属性?我想使用这样的属性来检查 Web 应用程序中丢失的更新。我不在数据库事务中。所以“可序列化的隔离级别”在这里是没有选择的。

顺便说一句:如何在内部检查 Oracle 的更新?

例子:

foo

ID    ATTR1    SYS_ATTR
-----------------------
1     foo      X1

UPDATE foo
SET attr1 = 'bar'
WHERE id = 1;

ID    ATTR1    SYS_ATTR
-----------------------
1     bar      Z1 -- <- changed too

甲骨文 11g

标签: oracleoracle11g

解决方案


是的,您需要拥有自己的时间戳列才能在 Oracle中实现乐观锁定。


推荐阅读