mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-15 19:02:04 +00:00
cd14f9ebcb
* 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
48 lines
2.2 KiB
Markdown
48 lines
2.2 KiB
Markdown
---
|
|
machine_translated: true
|
|
machine_translated_rev: 72537a2d527c63c07aa5d2361a8829f3895cf2bd
|
|
toc_priority: 46
|
|
toc_title: "entr\xE9e"
|
|
---
|
|
|
|
# entrée {#input}
|
|
|
|
`input(structure)` - fonction de table qui permet effectivement convertir et insérer des données envoyées à la
|
|
serveur avec une structure donnée à la table avec une autre structure.
|
|
|
|
`structure` - structure de données envoyées au serveur dans le format suivant `'column1_name column1_type, column2_name column2_type, ...'`.
|
|
Exemple, `'id UInt32, name String'`.
|
|
|
|
Cette fonction peut être utilisée uniquement dans `INSERT SELECT` requête et une seule fois mais se comporte autrement comme une fonction de table ordinaire
|
|
(par exemple, il peut être utilisé dans la sous-requête, etc.).
|
|
|
|
Les données peuvent être envoyées de quelque manière que ce soit comme pour ordinaire `INSERT` requête et passé dans tout disponible [format](../../interfaces/formats.md#formats)
|
|
qui doit être spécifié à la fin de la requête (contrairement à l'ordinaire `INSERT SELECT`).
|
|
|
|
La caractéristique principale de cette fonction est que lorsque le serveur reçoit des données du client il les convertit simultanément
|
|
selon la liste des expressions dans le `SELECT` clause et insère dans la table cible. Table temporaire
|
|
avec toutes les données transférées n'est pas créé.
|
|
|
|
**Exemple**
|
|
|
|
- Laissez le `test` le tableau a la structure suivante `(a String, b String)`
|
|
et les données `data.csv` a une structure différente `(col1 String, col2 Date, col3 Int32)`. Requête pour insérer
|
|
les données de l' `data.csv` dans le `test` table avec conversion simultanée ressemble à ceci:
|
|
|
|
<!-- -->
|
|
|
|
``` bash
|
|
$ 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` contient les données de la même structure `test_structure` comme la table `test` puis ces deux requêtes sont égales:
|
|
|
|
<!-- -->
|
|
|
|
``` bash
|
|
$ 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"
|
|
```
|
|
|
|
[Article Original](https://clickhouse.tech/docs/en/query_language/table_functions/input/) <!--hide-->
|