oracle - 使用系统属性/列检查“丢失更新”
问题描述
如果我更新一行,系统属性/虚拟列是否会发生变化?或者我是否需要为此目的自定义时间戳属性?我想使用这样的属性来检查 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
解决方案
是的,您需要拥有自己的时间戳列才能在 Oracle中实现乐观锁定。
推荐阅读
- c# - ASP.NET Core 2.2,无法确定实体框架中导航属性表示的关系
- angular - 在 ngx-chart pie 中使用 labelFormatting
- python - 如何将具有列表形式的字符串转换为张量?
- c++ - 问:如何在 C++17 中定义一个不可丢弃的布尔值,最好使用枚举?
- windows - 如何在 Windows 上的批处理脚本中对 (Y/N) [N] 提示删除映射的网络驱动器回答是?
- git - 如何从强制结账中恢复本地工作?
- python - Elasticsearch“未能找到分析器”错误和分析器未由设置 API 显示
- python - 如何对自然日志进行衍生得到 TypeError:无法将表达式转换为浮点数
- delphi - 尝试使用父子下拉列表填充组合框
- c++ - 在使用 MATLAB Coder 生成的 C++ 代码中打印预测输出的问题