Skip to main content
Manipule les données correspondant à l’expression de filtrage spécifiée. Cette opération est implémentée sous forme de mutation.
Le préfixe ALTER TABLE distingue cette syntaxe de celle de la plupart des autres systèmes prenant en charge SQL. Il indique que, contrairement à des requêtes similaires dans les bases de données OLTP, il s’agit d’une opération lourde qui n’est pas conçue pour être utilisée fréquemment.
filter_expr doit être de type UInt8. Cette requête met à jour les valeurs des colonnes spécifiées avec celles des expressions correspondantes dans les lignes pour lesquelles filter_expr prend une valeur non nulle. Les valeurs sont converties vers le type de la colonne à l’aide de l’opérateur CAST. La mise à jour de colonnes utilisées dans le calcul de la clé primaire ou de la clé de partitionnement n’est pas prise en charge. Une requête peut contenir plusieurs commandes séparées par des virgules. Le mode de synchronisation du traitement de la requête est défini par le paramètre mutations_sync. Par défaut, il est asynchrone. Voir aussi

Colonnes matérialisées

Une colonne MATERIALIZED dont l’expression lit une colonne mise à jour est recalculée lors de la mutation, afin que sa valeur stockée reste cohérente avec les nouvelles données.

Colonnes calculées à partir de colonnes EPHEMERAL

Une colonne EPHEMERAL n’existe que pendant la durée d’un INSERT et n’est jamais stockée. Une colonne MATERIALIZED calculée à partir de celle-ci ne peut donc pas être recalculée par une mutation. Elle conserve la valeur calculée lors de l’INSERT, qui ne correspond alors plus à son expression :
m vaut 8, la valeur calculée lors de l’INSERT, et non 2 + 7 : la valeur de e n’est pas disponible en dehors de l’INSERT qui l’a fournie. La mutation consigne un avertissement dans le journal du serveur lorsqu’elle ignore une colonne pour cette raison. Pour mettre à jour une telle colonne, réexécutez l’INSERT pour les lignes concernées.
Dernière modification le 18 août 2026