在mariadb中设置无限超时get\u lock()

ny6fqffe  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(279)

在mysql中get_lock(),接受一个负值表示超时,并被解释为无限超时。
mysql文档mentation:get_lock()
尝试使用字符串str指定的名称获取锁,超时时间为超时秒。负超时值表示无限超时。锁是专用的。当由一个会话持有时,其他会话无法获得相同名称的锁。
但在mariadb中,我找不到复制无限超时的方法,因为文档中没有指定任何内容。
马里亚德多库mentation:get_lock()
get_lock(str,timeout)[…]str对于get_lock()和相关函数不区分大小写。如果str是空字符串或null,get\u lock()将返回null而不执行任何操作。超时被舍入到最接近的整数。
我可以用mariadb中mysql的无限超时复制get_lock()?

yzckvree

yzckvree1#

mariadb不接受 GET_LOCK :

MariaDB [test]> do get_lock('test', -1);
Query OK, 0 rows affected, 1 warning (0.00 sec)

MariaDB [test]> show warnings;
+---------+------+-----------------------------------------------------+
| Level   | Code | Message                                             |
+---------+------+-----------------------------------------------------+
| Warning | 1411 | Incorrect timeout value: '-1' for function get_lock |
+---------+------+-----------------------------------------------------+
1 row in set (0.00 sec)

你能做的就是使用 0xffffffff 要在mariadb中模拟相同的行为:

MariaDB [test]> do get_lock('test', 0xffffff);
Query OK, 0 rows affected (1.85 sec)

相关问题