mysql - 事务中的 JDBC/MySQL 查询和更新

标签 mysql sql jdbc transactions locking

基本上,我们的用户配置算法会执行类似的操作

-查询新用户 -更新数据库以显示您拥有该用户

我想知道如何锁定进程的其他实例在进程已经启动时执行“读取”步骤的能力。所以它比典型的事务要激进一点,因为它需要一个读读锁,当然不相关的进程应该能够在不受锁影响的情况下进行读取。

最佳答案

您只需立即运行 UPDATE 查询即可“窃取”当前服务器的所有非事件用户。

由于各个 UPDATE 查询始终是原子的,这将确保每个用户仅被一台服务器获取。

由于 MySQL 不允许您从 UPDATE 返回更新的行,因此您需要添加一个标识符列来告诉您哪些行被“窃取”。
每次配置用户时,选择一个 GUID,在 UPDATE 语句中将标识符列设置为该 GUID,然后选择仍然具有该 GUID 的行。

关于mysql - 事务中的 JDBC/MySQL 查询和更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11745091/

相关文章:

mysql - 在Mysql中动态创建国家REGEXP

mysql - 表未更新。无法在 FROM 子句中指定更新目标表 'nodeassociation'

java - DB2 中的 jdbc 语句获取大小

java - JDBC/Hibernate 获取大小和内存问题

javascript - Titanium mobile - 未捕获错误 : no such table

java - JTable+JDBC : Easiest way

mysql - 在列后添加新列并定义默认值

mysql - 如何左加入旧ID

mysql根据条件获取多表的计数

sql - 无法在 HANA Studio 的过程中调用过程