> ## 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.

> Función de tabla que permite convertir e insertar de forma eficiente datos enviados al servidor con una estructura dada en una tabla con otra estructura.

# input

`input(structure)` - función de tabla que permite convertir e insertar de forma eficiente datos enviados al
servidor con una estructura dada en una tabla con otra estructura.

`structure` - estructura de los datos enviados al servidor en el siguiente formato `'column1_name column1_type, column2_name column2_type, ...'`.
Por ejemplo, `'id UInt32, name String'`.

Esta función solo puede usarse en la consulta `INSERT SELECT` y solo una vez, pero por lo demás se comporta como una función de tabla обычная
(por ejemplo, puede usarse en una subconsulta, etc.).

Los datos pueden enviarse de cualquier forma, como en una consulta `INSERT` ordinaria, y pasarse en cualquier [formato](/es/reference/formats)
disponible, que debe especificarse al final de la consulta (a diferencia de un `INSERT SELECT` ordinario).

La principal característica de esta función es que, cuando el servidor recibe datos del cliente, los convierte simultáneamente
según la lista de expresiones de la cláusula `SELECT` y los inserta en la tabla de destino. No se crea una tabla temporal
con todos los datos transferidos.

<div id="examples">
  ## Ejemplos
</div>

* Supongamos que la tabla `test` tiene la siguiente estructura `(a String, b String)`
  y que los datos de `data.csv` tienen una estructura distinta `(col1 String, col2 Date, col3 Int32)`. La consulta para insertar
  datos de `data.csv` en la tabla `test` con conversión simultánea es la siguiente:

```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";
```

* Si `data.csv` contiene datos con la misma estructura `test_structure` que la tabla `test`, estas dos consultas son equivalentes:

```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"
```
