UPDATE

Nom

UPDATE -- met à jour les lignes d'une table

Synopsis

UPDATE [ ONLY ] table SET colonne = { expression | DEFAULT } [, ...]
    [ FROM liste_from ]
    [ WHERE condition ]

Description

UPDATE modifie les valeurs des colonnes spécifiées dans toutes les lignes pour satisfaire la condition. Seules les colonnes à modifier doivent être mentionnées dans l'instruction ; les colonnes ne peuvent pas récupérer leur précédentes valeurs avec SET.

Par défaut, UPDATE mettra à jour les lignes de la table spécifiée et toutes ses sous-tables. Si vous souhaitez ne mettre à jour que la table spécifique mentionnée, vous pouvez utiliser la clause ONLY.

Vous devez avoir le droit UPDATE sur la table pour la mettre à jour, ainsi que le droit SELECT sur toutes les tables dont les valeurs sont lues dans expression ou condition.

Paramètres

table

Le nom de la table à mettre à jour (pouvant être qualifié du nom du schéma).

colonne

Le nom d'une colonne dans table.

expression

Une expression à affecter à la colonne. L'expression pourrait utiliser les anciennes valeurs de cette colonne et des autres dans la table.

DEFAULT

Initialise sa colonne à la valeur par défaut (qui sera NULL si aucune expression spécifique par défaut ne lui a été affectée).

liste_from

Une liste d'expressions de table, permettant aux colonnes des autres tables d'apparaître dans la condition WHERE et les expressions de mise à jour.

condition

Une expression qui renvoie une valeur de type boolean. Seules les lignes pour lesquelles cette expression renvoie true seront mises à jour.

Sorties

En cas de succès, une commande UPDATE renvoie une balise commande de la forme

UPDATE total

Le total est le nombre de lignes mises à jour. Si total vaut 0, aucune ligne ne correspond à condition (ceci n'est pas considéré comme une erreur).

Exemples

Modifiez le mot Drame en Dramatique dans la colonne genre de la table films :

UPDATE films SET genre = 'Dramatique' WHERE genre = 'Drame';

Ajustez les entrées de température et réinitialisez la précipitation à sa valeur par défaut en une ligne de la table temps :

UPDATE temps SET temp_basse = temp_basse+1, temp_haute = temp_basse+15, prcp =
DEFAULT
  WHERE ville = 'San Francisco' AND date = '2003-07-03';

Compatibilité

Cette commande est conforme au standard SQL. La clause FROM est une extension PostgreSQL.