数据库 - 提交事务计时问题

时间:2013-04-01 14:03:16

标签: database

我对如何提交事务需要一些时间来进行更新感到困惑。

这是我正在尝试的场景:
1.提交交易(所有更新声明)
2.转到数据库并尝试获取更新

在这里,当我尝试获取更新时,有时我没有得到最新的更新 有时我会得到旧版本的数据。

这里有更多细节: 在事务中我有两个更新语句说它在每次更新时将一个int字段更新为1 例如:在任何更新之前,我在db中的值为5,现在具有两个更新的事务将使其成为7。

提交事务后,我尝试使用连接对象和PreparedStatement来获取它。

我得到的结果是6.不是7.虽然当我在DB上看到7时。

所以,我做了一些调试,并尝试跟踪数据库更新的时间戳和获取数据的时间戳。

令我惊讶的是,我获取数据的时间戳少于DB上次更新的时间戳。

有没有人对此有任何想法?

1 个答案:

答案 0 :(得分:0)

与其他人所说的非常相似,您的代码可能只是阅读已提交的事务。也许你认为你实现了交易,而事实上你却没有。例如,您对db的查询可能是未提交的读取(从表中选择*,其中x = some_value with ur)并且您的代码正在执行提交读取,这就是您看到不同值的原因。