PostgreSQL DELETE permet de supprimer le contenu d’une table. La commande peut être utilisée avec des conditions pour cibler uniquement certaines lignes à supprimer. La suppression étant irréversible, cette commande doit être utilisée avec précaution.

Qu’est-ce que PostgreSQL DELETE ?

La commande DELETE est utilisée dans PostgreSQL pour supprimer des entrées d’une table. La condition WHERE vous permet de sélectionner des lignes spécifiques dont le contenu doit être supprimé. Si la clause WHERE n’est pas précisée, toutes les lignes de la table seront supprimées de manière irréversible. C’est pourquoi vous ne devez utiliser cette commande qu’avec la plus grande prudence.

Serveurs dédiés
Performance et innovation

Profitez de votre propre serveur, avec hardware dédié, intégration Cloud, facturation à la minute et processeur Intel® Xeon® ou AMD.

PostgreSQL DELETE : syntaxe et fonctionnement

La syntaxe de PostgreSQL DELETE a la structure de base suivante :

DELETE FROM nom_de_la_table
WHERE Condition;
postgresql

DELETE FROM initie la suppression dans la table spécifiée. La condition WHERE vous permet de spécifier dans quelles lignes le contenu doit être supprimé. Pour appliquer plusieurs critères de suppression, utilisez les opérateurs AND ou OR.

Note

Avant de supprimer des données, vous devriez vous assurer que vous avez bien une sauvegarde récente de la base de données ou que vous exécutez le processus de suppression dans une transaction. De cette façon, vous éviterez de perdre des données importantes si la commande est mal exécutée par inadvertance.

Supprimer tout le contenu d’une table

Le fonctionnement de PostgreSQL DELETE est plus facile à expliquer avec un exemple pratique. Pour cela, nous utilisons la commande CREATE TABLE pour créer une nouvelle table PostgreSQL appelée « liste_des_clients ». Nous utilisons ensuite INSERT INTO pour la remplir avec différents contenus. La table dispose de trois colonnes nommées « ID », « Nom » et « Ville » et reçoit initialement quatre entrées. Voici à quoi elle ressemble :

|ID|Nom|Ville|
|-|-|-|
|1|Berland|Paris|
|2|Wirth|Marseille|
|3|Madiot|Lille|
|4|Bourrat|Dijon|
postgresql

Pour vider complètement une table tout en conservant sa structure, utilisez DELETE sans condition WHERE. Dans notre exemple, la commande ressemble à ceci :

DELETE FROM liste_des_clients;
postgresql

Supprimer une ligne avec PostgreSQL DELETE

Le plus souvent, vous voudrez supprimer une ligne spécifique plutôt que l’ensemble du contenu de la table. Cela se fait aussi avec PostgreSQL DELETE. Pour cela, nous utilisons la commande avec une clause WHERE. Dans notre exemple, nous voulons supprimer le client « Wirth » avec l’ID « 2 ». Le code approprié est le suivant :

DELETE FROM liste_des_clients
WHERE ID = 2;
postgresql

Spécifier des lignes avec plusieurs conditions

Il peut y avoir des doublons et donc des entrées qui ne sont pas uniques, en particulier dans les longues tables. Si vous voulez être sûr de ne supprimer que la ligne souhaitée, vous pouvez utiliser PostgreSQL DELETE avec plusieurs conditions. Dans notre exemple, nous avons deux clients nommés « Madiot » et nous voulons seulement supprimer la deuxième entrée. Nous allons donc combiner deux conditions. Le code pour cela est :

DELETE FROM liste_des_clients 
WHERE Nom = 'Madiot'
AND ID >= 3;
postgresql

Ainsi, seules les lignes où le nom est « Madiot » et l’ID est supérieur ou égal à 3 seront supprimées. Comme la première entrée avec le nom a un numéro d’ID inférieur à « 3 », cette entrée reste dans la base de données même après la commande de suppression.

Cet article vous a-t-il été utile ?
Aller au menu principal