ClickHouse/docs/ja/sql_reference/statements/insert_into.md
2020-04-04 12:15:31 +03:00

81 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
machine_translated: true
machine_translated_rev: d734a8e46ddd7465886ba4133bff743c55190626
toc_priority: 34
toc_title: INSERT INTO
---
## INSERT {#insert}
データの追加。
基本的なクエリ形式:
``` sql
INSERT INTO [db.]table [(c1, c2, c3)] VALUES (v11, v12, v13), (v21, v22, v23), ...
```
クエリでは、挿入する列のリストを指定できます `[(c1, c2, c3)]`. この場合、残りの列は次のように入力されます:
- から計算された値 `DEFAULT` テーブル定義で指定された式。
- ゼロと空の文字列の場合 `DEFAULT` 式は定義されていません。
もし [strict\_insert\_defaults=1](../../operations/settings/settings.md)、持っていない列 `DEFAULT` definedは、クエリに一覧表示する必要があります。
データは、任意の挿入物に渡すことができます [書式](../../interfaces/formats.md#formats) ClickHouseでサポートされている。 形式は、クエリで明示的に指定する必要があります:
``` sql
INSERT INTO [db.]table [(c1, c2, c3)] FORMAT format_name data_set
```
For example, the following query format is identical to the basic version of INSERT … VALUES:
``` sql
INSERT INTO [db.]table [(c1, c2, c3)] FORMAT Values (v11, v12, v13), (v21, v22, v23), ...
```
ClickHouseは、データの前にすべてのスペースと改行存在する場合を削除します。 クエリを作成するときは、クエリ演算子の後に新しい行にデータを置くことをお勧めします(データがスペースで始まる場合は重要です)。
例えば:
``` sql
INSERT INTO t FORMAT TabSeparated
11 Hello, world!
22 Qwerty
```
挿入することができます。データから別のクエリのコマンドラインクライアント、httpインターフェース。 詳細については、以下を参照してください “[界面](../../interfaces/index.md#interfaces)”.
### 制約 {#constraints}
テーブルが [制約](create.md#constraints), their expressions will be checked for each row of inserted data. If any of those constraints is not satisfied — server will raise an exception containing constraint name and expression, the query will be stopped.
### の結果を挿入する `SELECT` {#insert_query_insert-select}
``` sql
INSERT INTO [db.]table [(c1, c2, c3)] SELECT ...
```
列は、select句内の位置に応じてマップされます。 ただし、select式とinsertのテーブルの名前は異なる場合があります。 必要に応じて、タイプ鋳造が行われる。
値以外のデータ形式では、次のような式に値を設定できません `now()`, `1 + 2`、というように。 この場合、非効率的なコードが実行に使用されるためです。
その他のクエリをデータ部品に対応していない: `UPDATE`, `DELETE`, `REPLACE`, `MERGE`, `UPSERT`, `INSERT UPDATE`.
ただし、次の方法で古いデータを削除できます `ALTER TABLE ... DROP PARTITION`.
`FORMAT` 次の場合、クエリの最後に句を指定する必要があります `SELECT` テーブル関数を含む句 [入力()](../table_functions/input.md).
### パフォーマン {#performance-considerations}
`INSERT` 入力データを主キーでソートし、パーティションキーでパーティションに分割します。 た場合のデータを挿入し複数の仕切りは一度で大幅に低減できることの `INSERT` クエリ。 これを避けるには:
- 一度に100,000行など、かなり大きなバッチでデータを追加します。
- グループによるデータのパーティション鍵のアップロード前にでclickhouse.
性能が減少することはありませんが:
- データはリアルタイムで追加されます。
- アップロードしたデータとは、通常はソートされました。
[元の記事](https://clickhouse.tech/docs/en/query_language/insert_into/) <!--hide-->