DissertationsEnLigne.com - Dissertations gratuites, mémoires, discours et notes de recherche
Recherche

Update

Compte Rendu : Update. Rechercher de 53 000+ Dissertation Gratuites et Mémoires
Page 1 sur 5

ition.

Paramètres

table

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

alias

Un nom de substitution pour la table cible. Quand un alias est fourni, il cache complètement le nom réel de la table. Par exemple, avecUPDATE foo AS f, le reste de l'instruction UPDATE doit référencer la table avec f et non plus foo.

colonne

Le nom d'une colonne dans table. Le nom de la colonne peut être qualifié avec un nom de sous-champ ou un indice de tableau, si nécessaire. Ne pas inclure le nom de la table dans la spécification d'une colonne cible -- par exemple, UPDATE tab SET tab.col = 1 est invalide.

expression

Une expression à affecter à la colonne. L'expression peut utiliser les anciennes valeurs de cette colonne et d'autres colonnes de la table.

DEFAULT

Réinitialise la colonne à sa valeur par défaut (qui vaut NULL si aucune expression par défaut ne lui a été affectée).

liste_from

Une liste d'expressions de tables, qui permet aux colonnes des autres tables d'apparaître dans la condition WHERE et dans les expressions de mise à jour. Cela est similaire à la liste de tables pouvant être spécifiée dans Clause FROM d'une instruction SELECT. La table cible ne doit pas apparaître dans liste_from, sauf en cas d'auto-jointure (auquel cas elle doit apparaître avec un alias dansliste_from).

condition

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

expression_sortie

Une expression à calculer et renvoyée par la commande UPDATE après chaque mise à jour de ligne. L'expression peut utiliser tout nom de colonne de la table ou des tables listées dans le FROM. Indiquez * pour que toutes les colonnes soient renvoyées.

nom_sortie

Un nom à utiliser pour une colonne renvoyée.

Sorties

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

-------------------------------------------------

UPDATE total

total est le nombre de lignes mises à jour. S'il vaut 0, c'est qu'aucune ligne ne correspondait à condition (ce qui n'est pas considéré comme une erreur).

Notes

Lorsqu'une clause FROM est précisée, la table cible est jointe aux tables mentionnées dans liste_from, et chaque ligne en sortie de la jointure représente une opération de mise à jour pour la table cible. Lors de l'utilisation de FROM, il faut s'assurer que la jointure produit au plus une ligne en sortie par ligne à modifier. En d'autres termes, une ligne cible ne doit pas être jointe à plus d'une ligne des autres tables. Le cas échéant, seule une ligne de jointure est utilisée pour mettre à jour la ligne cible, mais il n'est pas possible de prédire laquelle.

À cause de ce manque de déterminisme, il est plus sûr de ne référencer les autres tables qu'à l'intérieur de sous-requêtes. Même si c'est plus difficile à lire et souvent plus lent que l'utilisation d'une jointure.

Si la commande UPDATE contient une clause RETURNING, le résultat sera similaire à celui d'une instruction SELECT contenant les colonnes et les valeurs définies dans la liste RETURNING, à partir de la liste des lignes mises à jour par la commande.

Exemples

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

-------------------------------------------------

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

Ajuster les entrées de température et réinitialiser la précipitation à sa valeur par défaut dans 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 = '2005-07-03';

Réaliser la même opération et renvoyer les lignes mises à jour :

-------------------------------------------------

UPDATE temps SET temp_basse = temp_basse+1, temp_haute = temp_basse+15, prcp = DEFAULT

-------------------------------------------------

WHERE ville = 'San Francisco' AND date = '2003-07-03'

-------------------------------------------------

RETURNING temp_basse, temp_haute, prcp;

Utiliser une autre syntaxe pour faire la même mise à jour :

-------------------------------------------------

UPDATE temps SET (temp_basse, temp_haute, prcp) = (temp_basse+1, temp_basse+15, DEFAULT)

-------------------------------------------------

WHERE ville = 'San Francisco' AND date = '2003-07-03';

Incrémenter le total des ventes de la personne qui gère le compte d'Acme Corporation, à l'aide de la clause FROM :

-------------------------------------------------

UPDATE employes SET total_ventes = total_ventes + 1 FROM comptes

-------------------------------------------------

WHERE compte.nom = 'Acme Corporation'

-------------------------------------------------

AND employes.id = compte.vendeur;

Réaliser la même opération en utilisant une sous-requête dans la clause WHERE :

-------------------------------------------------

UPDATE employes SET total_ventes = total_ventes + 1 WHERE id =

-------------------------------------------------

(SELECT vendeur FROM comptes WHERE nom = 'Acme Corporation');

Tenter d'insérer un nouvel élément dans le stock avec sa quantité. Si l'élément existe déjà, mettre à jour le total du stock de l'élément. Les points de sauvegarde sont utilisés pour ne pas avoir à annuler l'intégralité de la transaction en cas d'erreur.

-------------------------------------------------

BEGIN;

-------------------------------------------------

-- autres opérations

-------------------------------------------------

SAVEPOINT

...

Télécharger au format  txt (9.6 Kb)   pdf (92.2 Kb)   docx (8.5 Kb)  
Voir 4 pages de plus »
Uniquement disponible sur DissertationsEnLigne.com