2020-04-04 09:15:31 +00:00
---
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` .
2020-04-30 18:19:18 +00:00
`FORMAT` 次の場合、クエリの最後に句を指定する必要があります `SELECT` テーブル関数を含む句 [入力() ](../table-functions/input.md ).
2020-04-04 09:15:31 +00:00
### パフォーマン {#performance-considerations}
`INSERT` 入力データを主キーでソートし、パーティションキーでパーティションに分割します。 た場合のデータを挿入し複数の仕切りは一度で大幅に低減できることの `INSERT` クエリ。 これを避けるには:
- 一度に100,000行など、かなり大きなバッチでデータを追加します。
- グループによるデータのパーティション鍵のアップロード前にでclickhouse.
性能が減少することはありませんが:
- データはリアルタイムで追加されます。
- アップロードしたデータとは、通常はソートされました。
[元の記事 ](https://clickhouse.tech/docs/en/query_language/insert_into/ ) <!--hide-->