IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Synopsis

DELETE FROM [ ONLY ] table [ [ AS ] alias ]
    [ USING liste_using ]
    [ WHERE condition ]
    [ RETURNING * | expression_sortie [ AS output_name ] [, ...] ]

Description

DELETE supprime de la table spécifiée les lignes qui satisfont la clause WHERE. Si la clause WHERE est absente, toutes les lignes de la table sont supprimées. Le résultat est une table valide, mais vide.

[Astuce]

Astuce

TRUNCATE est une extension PostgreSQL™ qui fournit un mécanisme plus rapide de suppression de l'ensemble des lignes d'une table.

Par défaut, DELETE supprime les lignes de la table spécifiée et de ses tables filles. La clause ONLY est utilisée pour ne supprimer que les lignes de la table mentionnée.

Il existe deux façons de supprimer des lignes d'une table en utilisant les informations d'autres tables de la base de données : les sous-sélections ou la spécification de tables supplémentaires dans la clause USING. La technique la plus appropriée dépend des circonstances.

La clause RETURNING optionnelle fait que DELETE calcule et renvoie le(s) valeur(s) basée(s) sur chaque ligne en cours de suppression. Toute expression utilisant les colonnes de la table et/ou les colonnes de toutes les tables mentionnées dans USING peut être calculée. La syntaxe de la liste RETURNING est identique à celle de la commande SELECT .

Il est nécessaire de posséder le droit DELETE sur la table pour en supprimer des lignes, et le droit SELECT sur toute table de la clause USING et sur toute table dont les valeurs sont lues dans la condition .

Paramètres

ONLY

Si cette option est spécifiée, les lignes ne sont supprimées que dans la table nommée. Dans le cas contraire, toutes les tables qui héritent de la table nommée sont considérées.

table

Le nom de la table (é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, avec DELETE FROM foo AS f, le reste de l'instruction DELETE doit référencer la table avec f et non plus foo.

liste_using

Une liste d'expressions de table, qui permet de faire apparaître des colonnes d'autres tables dans la condition WHERE. C'est semblable à la liste des tables utilisées dans la clause Clause FROM d'une instruction SELECT ; un alias du nom d'une table peut ainsi être utilisé. La table cible ne doit pas être précisée dans liste_using , sauf si une auto-jointure est envisagée.

condition

Une expression retournant une valeur de type boolean qui permet de déterminer les lignes à supprimer.

expression_sortie

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

nom_sortie

Un nom à utiliser pour une colonne renvoyée.