ClickHouse/docs/zh/sql-reference/table-functions/input.md
Ivan Blinkov cd14f9ebcb
SQL reference refactoring (#10857)
* split up select.md

* array-join.md basic refactoring

* distinct.md basic refactoring

* format.md basic refactoring

* from.md basic refactoring

* group-by.md basic refactoring

* having.md basic refactoring

* additional index.md refactoring

* into-outfile.md basic refactoring

* join.md basic refactoring

* limit.md basic refactoring

* limit-by.md basic refactoring

* order-by.md basic refactoring

* prewhere.md basic refactoring

* adjust operators/index.md links

* adjust sample.md links

* adjust more links

* adjust operatots links

* fix some links

* adjust aggregate function article titles

* basic refactor of remaining select clauses

* absolute paths in make_links.sh

* run make_links.sh

* remove old select.md locations

* translate docs/es

* translate docs/fr

* translate docs/fa

* remove old operators.md location

* change operators.md links

* adjust links in docs/es

* adjust links in docs/es

* minor texts adjustments

* wip

* update machine translations to use new links

* fix changelog

* es build fixes

* get rid of some select.md links

* temporary adjust ru links

* temporary adjust more ru links

* improve curly brace handling

* adjust ru as well

* fa build fix

* ru link fixes

* zh link fixes

* temporary disable part of anchor checks
2020-05-15 07:34:54 +03:00

1.8 KiB

machine_translated machine_translated_rev toc_priority toc_title
true 72537a2d52 46 输入

输入

input(structure) -表功能,允许有效地转换和插入数据发送到 服务器与给定结构的表与另一种结构。

structure -以下格式发送到服务器的数据结构 'column1_name column1_type, column2_name column2_type, ...'. 例如, 'id UInt32, name String'.

此功能只能用于 INSERT SELECT 查询,只有一次,但其他行为像普通表函数 (例如,它可以用于子查询等。).

数据可以以任何方式像普通发送 INSERT 查询并传递任何可用 格式 必须在查询结束时指定(不像普通 INSERT SELECT).

这个功能的主要特点是,当服务器从客户端接收数据时,它同时将其转换 根据表达式中的列表 SELECT 子句并插入到目标表中。 临时表 不创建所有传输的数据。

  • test 表具有以下结构 (a String, b String) 和数据 data.csv 具有不同的结构 (col1 String, col2 Date, col3 Int32). 查询插入 从数据 data.csvtest 同时转换的表如下所示:
$ cat data.csv | clickhouse-client --query="INSERT INTO test SELECT lower(col1), col3 * col3 FROM input('col1 String, col2 Date, col3 Int32') FORMAT CSV";
  • 如果 data.csv 包含相同结构的数据 test_structure 作为表 test 那么这两个查询是相等的:
$ cat data.csv | clickhouse-client --query="INSERT INTO test FORMAT CSV"
$ cat data.csv | clickhouse-client --query="INSERT INTO test SELECT * FROM input('test_structure') FORMAT CSV"

原始文章