3.9 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | d734a8e46d |
34 | INSERT INTO |
INSERT
データの追加。
基本的なクエリ形式:
INSERT INTO [db.]table [(c1, c2, c3)] VALUES (v11, v12, v13), (v21, v22, v23), ...
クエリでは、挿入する列のリストを指定できます [(c1, c2, c3)]
. この場合、残りの列は次のように入力されます:
- から計算された値
DEFAULT
テーブル定義で指定された式。 - ゼロと空の文字列の場合
DEFAULT
式は定義されていません。
もし strict_insert_defaults=1、持っていない列 DEFAULT
definedは、クエリに一覧表示する必要があります。
データは、任意の挿入物に渡すことができます 書式 ClickHouseでサポートされている。 形式は、クエリで明示的に指定する必要があります:
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:
INSERT INTO [db.]table [(c1, c2, c3)] FORMAT Values (v11, v12, v13), (v21, v22, v23), ...
ClickHouseは、データの前にすべてのスペースと改行(存在する場合)を削除します。 クエリを作成するときは、クエリ演算子の後に新しい行にデータを置くことをお勧めします(データがスペースで始まる場合は重要です)。
例えば:
INSERT INTO t FORMAT TabSeparated
11 Hello, world!
22 Qwerty
挿入することができます。データから別のクエリのコマンドラインクライアント、httpインターフェース。 詳細については、以下を参照してください “界面”.
制約
テーブルが 制約, 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 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
テーブル関数を含む句 入力().
パフォーマン
INSERT
入力データを主キーでソートし、パーティションキーでパーティションに分割します。 た場合のデータを挿入し複数の仕切りは一度で大幅に低減できることの INSERT
クエリ。 これを避けるには:
- 一度に100,000行など、かなり大きなバッチでデータを追加します。
- グループによるデータのパーティション鍵のアップロード前にでclickhouse.
性能が減少することはありませんが:
- データはリアルタイムで追加されます。
- アップロードしたデータとは、通常はソートされました。