.. highlightlang:: none

.. _load:

load
====

名前
----

load - データのロード

書式
----
::

 load values table [columns [ifexists [input_type]]]

説明
----

groonga組込コマンドの一つであるloadについて説明します。組込コマンドは、groonga実行ファイルの引数、標準入力、またはソケット経由でgroongaサーバにリクエストを送信することによって実行します。

loadは、使用しているデータベースのテーブルにレコードを登録し、カラムの値を更新します。

引数
----

``values``

  input_typeに指定する形式で登録するレコードの値を表現した文字列を渡します。

  input_typeがjsonである場合には、以下のいずれかの形式が使用できます。

  ``形式1``
    [[カラム名1, カラム名2,..], [カラム値1, カラム値2,..], [カラム値1, カラム値2,..],..]

  ``形式2``
    [{カラム名1: カラム値1, カラム名2: カラム値2}, {カラム名1: カラム値1, カラム名2: カラム値2},..]

  形式1の[カラム名1, カラム名2,..]の要素はcolumns引数が省略された場合のみ有効です。

  対象のテーブルが主キーを持つテーブルであった場合は、カラム名の中に'_key'(主キーを示す疑似カラム名)が含まれていなければなりません。

  values引数が省略された場合には、括弧の対応が取れるまで標準入力からvaluesの値を読み取ります。引数として値を指定する場合は、文字列のエスケープが必要ですが、標準入力から与える文字列はエスケープする必要がありません。

続きの文字列については、空白文字(' ')をエスケープする必要はありません。

``table``

  レコードを追加しようとするテーブルの名前を指定します。

``columns``

  テーブルに登録するレコードに値を設定するカラム名のリストを、カンマ区切りで指定します。

``ifexists``

  指定した主キーに対応するレコードが既にテーブルに登録済みであった場合に実行するscript形式のgrn_expr文字列を指定します。ifexistsにgrn_exprが指定された場合は、式の値が真である場合に限り、その他のカラムの値が更新されます。(デフォルトはtrue)

``input_type``

  入力形式を指定します。jsonのみに対応しています。

返値
---

json形式
^^^^^^^^

::

 [登録件数]

``登録件数``

  テーブルに登録されたレコードの件数が返されます。

例
--

テーブルEntryにレコードを登録します。::

 load --table Entry --input_type json --values [{\"_key\":\"abandon\",\"body\":\"放棄する\"}]

 [1]

標準入力からvaluesの値を与えます。::

 load --table Entry --input_type json
 [
 {"_key": "abbreviate", "body": "短縮する"}
 ]

 [1]

関連項目
--------

:doc:`../expr`
