我使用 Java 和 MySql 作为数据库。
我正在运行多个应用程序实例。我从数据库中选择一条记录,同时在获取后,我将其状态更新为“处理中”,这样其他实例就无法访问该记录。
但是发生的情况是实例运行得如此之快,以至于当一个实例正在访问一条记录时,另一个实例也在第一个实例对“处理中”进行更新之前访问同一条记录。我应该怎么做才能在其他实例访问它之前也进行更新?我在我的代码中使用了 conn.setTransactionIsolation(conn.TRANSACTION_READ_COMMITTED)
,但这也没有帮助。
提前致谢。
最佳答案
您需要一个select for update
类型的语句。
http://dev.mysql.com/doc/refman/5.0/en/innodb-locking-reads.html
关于java - 交易问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4953550/