MySQL GET_LOCK RELEASE_LOCK 函数
程序员文章站
2022-03-04 09:28:08
...
GET_LOCK(name,time)函数定义一个名称为name、持续时间长度为time秒的锁。
- 如果锁定成功,返回1。
- 如果操作超时,返回0。
- 如果发生错误,返回NULL。
假如有一个用GET_LOCK()得到的锁,当执行RELEASE_LOCK()或连接断开(正常或非正常)时,这个锁就会解除。
执行SQL:
SELECT GET_LOCK('MySQL',10) AS GetLock,
IS_USED_LOCK('MySQL') AS ISUsedLock,
IS_FREE_LOCK('MySQL') AS ISFreeLock,
RELEASE_LOCK('MySQL') AS ReleaseLock;
从上图中代码执行的结果可以看出:
- GET_LOCK('MySQL',10)返回结果为1,说明成功得到了一个名称为'MySQL'的锁,持续时间为10秒。
- IS_USED_LOCK('MySQL')返回结果为当前连接ID,表示名称为'MySQL'的锁正在被使用。
- IS_FREE_LOCK('MySQL')返回结果为0,说明名称为'MySQL'的锁正在被使用。
- RELEASE_LOCK('MySQL')返回值为1,说明解锁成功。