mariadb 行级读锁定

mariadb row level read locking

是否有任何 mariadb 后端支持行级读取锁定?我的意思是:

我有一个应用程序可以 运行 在三四台不同的机器上运行。机器数量是动态的,没有固定地址。该应用程序将执行以下两个查询:

SELECT col3 from table1 WHERE col1=X
<do some checking with the version>
UPDATE table1 SET col2 = somevalue, col3 = somevalue WHERE col1=X

现在,在第一个 SELECT 查询和第二个 UPDATE 查询之间,我不希望应用程序的任何实例读取(不仅仅是写入)对应于 col1=X[ 的记录=11=]

是否可以在mariadb中实现?

回答我的问题:

我们可以使用 SELECT ... FOR UPDATE 子句来锁定单个记录。这个锁会在事务 commit/rollback 上自动释放。更多信息请访问:https://dev.mysql.com/doc/refman/5.6/en/innodb-locking-reads.html