本文へスキップ
`Ctrl`+`K`

# 7.3.28. `lock_acquire`

## 7.3.28.1. 概要

Added in version 5.1.2.

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

注釈

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

## 7.3.28.2. 構文

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

    lock_acquire [target_name=null]

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

## 7.3.28.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.28.4. 引数

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

### 7.3.28.4.1. `target_name`

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

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

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

## 7.3.28.5. 戻り値

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

    [HEADER, SUCCEEDED_OR_NOT]

### 7.3.28.5.1. `HEADER`

`HEADER` については 出力形式 を参照してください。

### 7.3.28.5.2. `SUCCEEDED_OR_NOT`

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

## 7.3.28.6. 参考

> - lock_release

> - lock_clear