ClickHouse/docs/fr/sql-reference/statements/insert-into.md
Ivan Blinkov d91c97d15d
[docs] replace underscores with hyphens (#10606)
* Replace underscores with hyphens

* remove temporary code

* fix style check

* fix collapse
2020-04-30 21:19:18 +03:00

4.0 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true f865c9653f 34 INSERT INTO

INSERT

Lajout de données.

Format de requête de base:

INSERT INTO [db.]table [(c1, c2, c3)] VALUES (v11, v12, v13), (v21, v22, v23), ...

La requête peut spécifier une liste de colonnes à insérer [(c1, c2, c3)]. Dans ce cas, le reste des colonnes sont remplis avec:

  • Les valeurs calculées à partir DEFAULT expressions spécifiées dans la définition de la table.
  • Zéros et chaînes vides, si DEFAULT les expressions ne sont pas définies.

Si strict_insert_defaults=1, les colonnes qui nont pas DEFAULT défini doit être répertorié dans la requête.

Les données peuvent être transmises à LINSERT dans nimporte quel format soutenu par ClickHouse. Le format doit être spécifié explicitement dans la requête:

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 supprime tous les espaces et un saut de ligne (sil y en a un) avant les données. Lors de la formation dune requête, nous recommandons de placer les données sur une nouvelle ligne après les opérateurs de requête (ceci est important si les données commencent par des espaces).

Exemple:

INSERT INTO t FORMAT TabSeparated
11  Hello, world!
22  Qwerty

Vous pouvez insérer des données séparément de la requête à laide du client de ligne de commande ou de Linterface HTTP. Pour plus dinformations, consultez la section “Interface”.

Contraintes

Si la table a contraintes, 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.

Insertion Des Résultats De SELECT

INSERT INTO [db.]table [(c1, c2, c3)] SELECT ...

Les colonnes sont mappées en fonction de leur position dans la clause SELECT. Cependant, leurs noms dans Lexpression SELECT et la table pour INSERT peuvent différer. Si nécessaire, la coulée de type est effectuée.

Aucun des formats de données à lexception des Valeurs permettent de définir des valeurs dexpressions telles que now(), 1 + 2 et ainsi de suite. Le format des valeurs permet une utilisation limitée des expressions, mais ce nest pas recommandé, car dans ce cas, un code inefficace est utilisé pour leur exécution.

Les autres requêtes de modification des parties de données ne sont pas prises en charge: UPDATE, DELETE, REPLACE, MERGE, UPSERT, INSERT UPDATE. Cependant, vous pouvez supprimer les anciennes données en utilisant ALTER TABLE ... DROP PARTITION.

FORMAT la clause doit être spécifié à la fin de la requête si SELECT la clause contient la fonction de table entrée().

Considérations De Performance

INSERT trie les données dentrée par la clé primaire et les divise en partitions par une clé de partition. Si vous insérez des données dans plusieurs partitions à la fois, cela peut réduire considérablement les performances de l INSERT requête. Pour éviter cela:

  • Ajoutez des données en lots assez importants, tels que 100 000 lignes à la fois.
  • Groupez les données par une clé de partition avant de les télécharger sur ClickHouse.

Les performances ne diminueront pas si:

  • Les données sont ajoutées en temps réel.
  • Vous téléchargez des données qui sont généralement triées par heure.

Article Original