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

3.9 KiB
Raw Blame History

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.

性能が減少することはありませんが:

  • データはリアルタイムで追加されます。
  • アップロードしたデータとは、通常はソートされました。

元の記事