RELEASE_LOCK()¶
释放当前会话持有的指定用户级 advisory 锁的一次引用。
语法¶
RELEASE_LOCK(name)
参数¶
参数 |
说明 |
|---|---|
|
要释放的锁名称,不区分大小写。 |
返回值¶
当前会话成功释放一次锁引用时返回
1。锁存在但由其他会话持有时返回
0。指定锁不存在或输入无效时返回
NULL。
使用说明¶
同一会话多次调用
GET_LOCK()会增加引用计数;调用相同次数的RELEASE_LOCK()后锁才会空闲。源码依据:
test/distributed/cases/function/user_lock.sql。
示例¶
DROP DATABASE IF EXISTS release_lock_demo;
CREATE DATABASE release_lock_demo;
USE release_lock_demo;
SELECT GET_LOCK('refresh_cache', 0);
SELECT GET_LOCK('refresh_cache', 0);
SELECT RELEASE_LOCK('refresh_cache') AS first_release;
SELECT RELEASE_LOCK('refresh_cache') AS final_release;
SELECT IS_FREE_LOCK('refresh_cache') AS is_free;
DROP DATABASE release_lock_demo;