# groonga - オープンソースのカラムストア機能付き全文検索エンジン

- English

# 7.3.20. `load`

## 7.3.20.1. 概要

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

## 7.3.20.2. 構文

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

## 7.3.20.3. 引数

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

`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のみに対応しています。

## 7.3.20.4. 使い方

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

    load --table Entry --input_type json --values [{\"_key\":\"Groonga\",\"body\":\"It's very fast!!\"}]

    [1]

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

    load --table Entry --input_type json
    [
    {"_key": "Groonga", "body": "It's very fast!!"}
    ]

    [1]

## 7.3.20.5. 戻り値

### 7.3.20.5.1. JSON形式

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

>     [NUMBER]

## 7.3.20.6. 参考

grn_expr