7.3.26. lock_acquire#

7.3.26.1. 概要#

バージョン 5.1.2 で追加.

lock_acquire コマンドは対象オブジェクトのロックを獲得します。対象オブジェクトはデータベース、テーブル、カラムのどれかです。

注釈

これは危険なコマンドです。獲得したロックはロックが必要なくなったときに lock_release で解放してください。もし、解放し忘れるとデータベースが壊れるかもしれません。

7.3.26.2. 構文#

このコマンドの引数は1つで省略できます:

lock_acquire [target_name=null]

target_name パラメーターを省略した場合は対象オブジェクトはデータベースになります。

7.3.26.3. 使い方#

以下はデータベースのロックを獲得する例です。

実行例:

lock_acquire
# [[0, 1337566253.89858, 0.000355720520019531], true]

もし、データベースがロックされていると、新しいテーブル・カラムを作れなくなります。ここでは、他の例を示すためにデータベースのロックを解放します。

実行例:

lock_release
# [[0, 1337566253.89858, 0.000355720520019531], true]

以下は Entries テーブルのロックを獲得する例です。

実行例:

table_create Entries TABLE_NO_KEY
# [[0, 1337566253.89858, 0.000355720520019531], true]
lock_acquire Entries
# [[0, 1337566253.89858, 0.000355720520019531], true]

以下は Sites.title カラムのロックを獲得する例です。

実行例:

table_create Sites TABLE_HASH_KEY ShortText
# [[0, 1337566253.89858, 0.000355720520019531], true]
column_create Sites title COLUMN_SCALAR ShortText
# [[0, 1337566253.89858, 0.000355720520019531], true]
lock_acquire Sites.title
# [[0, 1337566253.89858, 0.000355720520019531], true]

7.3.26.4. 引数#

このセクションではすべての引数について説明します。

7.3.26.4.1. target_name#

テーブル名またはカラム名を指定します。

指定しなかったら対象オブジェクトはデータベースになります。

デフォルト値はありません。これは対象オブジェクトはデータベースになるということです。

7.3.26.5. 戻り値#

lock_acquire コマンドはロックを獲得できたかどうかを返します。:

[HEADER, SUCCEEDED_OR_NOT]

7.3.26.5.2. SUCCEEDED_OR_NOT#

コマンドの実行が成功するとtrueを返します。失敗するとエラーとしてfalseを返します。

7.3.26.6. 参考#