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

# paramètres de session deduplicate_insert_*

> Paramètres de session ClickHouse du groupe généré deduplicate_insert_*.

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["Version", "Valeur par défaut", "Commentaire"];
  const border = "1px solid rgba(128, 128, 128, 0.3)";
  const cell = {
    border,
    padding: "0.25rem 0.5rem",
    textAlign: "start",
    verticalAlign: "top"
  };
  return <details className="not-prose" style={{
    border,
    borderRadius: "0.5rem",
    margin: "0.5rem 0",
    padding: "0.5rem 0.75rem",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <summary style={{
    cursor: "pointer",
    fontWeight: 600,
    opacity: 0.72
  }}>
        Historique des versions
      </summary>
      <table style={{
    borderCollapse: "collapse",
    width: "100%",
    margin: "0.5rem 0 0"
  }}>
        <thead>
          <tr>
            {headers.map(header => <th key={header} style={{
    ...cell,
    fontWeight: 600,
    opacity: 0.72
  }}>
                {header}
              </th>)}
          </tr>
        </thead>
        <tbody>
          {rows.map((row, row_index) => <tr key={row.id ?? row_index}>
              {(row.items ?? []).map((item, item_index) => <td key={item_index} style={{
    ...cell,
    overflowWrap: "anywhere"
  }}>
                  {item?.label}
                </td>)}
            </tr>)}
        </tbody>
      </table>
    </details>;
};

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>Type</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>Par défaut</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Modifiable sans redémarrage
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

Ces paramètres sont disponibles dans [system.settings](/fr/reference/system-tables/settings) et sont générés automatiquement à partir du [code source](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp).

<div id="deduplicate_insert">
  ## deduplicate\_insert
</div>

<SettingsInfoBlock type="DeduplicateInsertMode" default_value="enable" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "enable"},{"label": "Active la déduplication pour toutes les insertions synchrones et asynchrones par défaut."}]}]} />

Active ou désactive la déduplication des blocs pour `INSERT INTO` (pour les tables Replicated\*).
Ce paramètre s'applique aux insertions synchrones et asynchrones, et remplace les paramètres `insert_deduplicate` et `async_insert_deduplicate`.
Ce paramètre a trois valeurs possibles :

* disable — La déduplication est désactivée pour la requête `INSERT INTO`.
* enable — La déduplication est activée pour la requête `INSERT INTO`.
* backward\_compatible\_choice — La déduplication est activée si `insert_deduplicate` ou `async_insert_deduplicate` sont activés pour le type d'insertion concerné.

Pour les requêtes `INSERT SELECT`, [`deduplicate_insert_select`](/fr/reference/settings/session-settings/deduplicate-insert#deduplicate_insert_select) est consulté en premier. La déduplication exige également que la table de destination conserve un journal de déduplication ; consultez [replicated\_deduplication\_window](/fr/reference/settings/merge-tree-settings/replicated-deduplication-window#replicated_deduplication_window) et [non\_replicated\_deduplication\_window](/fr/reference/settings/merge-tree-settings/other#non_replicated_deduplication_window).

<div id="deduplicate_insert_select">
  ## deduplicate\_insert\_select
</div>

<SettingsInfoBlock type="DeduplicateInsertSelectMode" default_value="enable_when_possible" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "enable_when_possible"},{"label": "modifie le comportement par défaut de deduplicate_insert_select en ENABLE_WHEN_POSSIBLE"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "enable_even_for_bad_queries"},{"label": "Nouveau paramètre, remplace insert_select_deduplicate"}]}]} />

Active ou désactive la déduplication des blocs de `INSERT SELECT` (pour les tables Replicated\*).
Pour les requêtes `INSERT SELECT`, ce paramètre est consulté avant [`deduplicate_insert`](/fr/reference/settings/session-settings/deduplicate-insert#deduplicate_insert).
Un `SELECT` est stable lorsqu'il comporte `ORDER BY ALL` et que son pipeline se termine par un seul flux. Un [`insert_deduplication_token`](/fr/reference/settings/session-settings/insert#insert_deduplication_token) non vide constitue un substitut équivalent à la stabilité.
Ce paramètre a quatre valeurs possibles :

* disable — La déduplication est désactivée pour les requêtes `INSERT SELECT`.
* force\_enable — La déduplication est activée pour les requêtes `INSERT SELECT`, indépendamment de `deduplicate_insert`. Si le résultat du SELECT n'est pas stable et qu'aucun jeton n'est fourni, une exception est levée.
* enable\_when\_possible — La déduplication est activée si elle est activée par `deduplicate_insert` et que le résultat du SELECT est stable, sinon elle est désactivée.
* enable\_even\_for\_bad\_queries - La déduplication est activée si elle est activée par `deduplicate_insert`, que le résultat du SELECT soit stable ou non. Si le résultat du SELECT n'est pas stable, un message est consigné, mais la requête est exécutée avec déduplication. Cette option est conservée pour assurer la compatibilité ascendante. Envisagez plutôt d'utiliser d'autres options, car celle-ci peut entraîner des résultats inattendus.
