説明
この関数は、文字列 str で名付けられたロックが解放されているかどうかをチェックするために使用されます。つまり、名前付けられたロックが他のセッションによって保持されていないかどうかを検出します。
構文
IS_FREE_LOCK('str')
説明
パラメータの説明
str:チェック対象のロック名を指定します。文字列型です。
戻り値
1を返す:ロックが解放されており、どのセッションもこのロックを保持していないことを示します。
0を返す:ロックが特定のセッションによって保持されていることを示し、ロックは解放されていません。
例
my_lock という名前のロックが使用可能かどうかをチェックします。
obclient [(none)]> SELECT IS_FREE_LOCK('my_lock');
戻り結果は次のとおりです:
+-------------------------+
| IS_FREE_LOCK('my_lock') |
+-------------------------+
| 0 |
+-------------------------+
1 row in set
戻り結果が0であることから、ロック my_lock は既に特定のセッションによって保持されています。IS_USED_LOCK() を実行することで、そのロックを保持しているセッションの接続識別子(セッションID)を照会できます。例:
obclient [(none)]> SELECT IS_USED_LOCK('my_lock');
戻り結果は次のとおりです:
+-------------------------+
| IS_USED_LOCK('my_lock') |
+-------------------------+
| 3221487701 |
+-------------------------+
1 row in set