> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8a08bda2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Табличная функция, которая позволяет эффективно преобразовывать и вставлять данные, отправленные на сервер с заданной структурой, в таблицу с другой структурой.

# input

`input(structure)` — табличная функция, которая позволяет эффективно преобразовывать и вставлять данные, отправленные на
сервер с заданной структурой, в таблицу с другой структурой.

`structure` — структура данных, отправляемых на сервер, в следующем формате: `'column1_name column1_type, column2_name column2_type, ...'`.
Например, `'id UInt32, name String'`.

Эту функцию можно использовать только в запросе `INSERT SELECT` и только один раз, но в остальном она ведет себя как обычная табличная функция
(например, ее можно использовать в подзапросе и т. д.).

Данные можно отправлять любым способом, как и для обычного запроса `INSERT`, и передавать в любом доступном [формате](/ru/reference/formats),
который должен быть указан в конце запроса (в отличие от обычного `INSERT SELECT`).

Основная особенность этой функции заключается в том, что, когда сервер получает данные от клиента, он одновременно преобразует их
в соответствии со списком выражений в предложении `SELECT` и вставляет в целевую таблицу. Временная таблица
со всеми переданными данными не создается.

<div id="examples">
  ## Примеры
</div>

* Пусть таблица `test` имеет следующую структуру `(a String, b String)`,
  а данные в `data.csv` — другую структуру `(col1 String, col2 Date, col3 Int32)`. Запрос на вставку
  данных из `data.csv` в таблицу `test` с одновременным преобразованием выглядит следующим образом:

```bash theme={null}
$ 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`, то эти два запроса эквивалентны:

```bash theme={null}
$ 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"
```
