Accéder au contenu principal
Documents
Gestion des tableaux et des schémasSyntaxe de baseDéclencheursBases de donnéesFonctions de la dateFonctions des chaînes de caractèresFonctions mathématiquesFonctions JSONIndexes

PostgreSQL DELETE

L'instruction `DELETE` de PostgreSQL est utilisée pour supprimer des tableaux. Il permet de supprimer des enregistrements spécifiques en fonction d'une condition, ou tous les enregistrements si aucune condition n'est spécifiée.

Utilisation

L'instruction `DELETE` est utilisée lorsque vous devez supprimer des données d'un tableau. Elle est généralement utilisée pour effacer des données obsolètes ou incorrectes.

DELETE FROM table_name
[WHERE condition];

Dans cette syntaxe, `DELETE FROM nom_de_table` spécifie le tableau à partir duquel vous voulez supprimer des tableaux, tandis que la condition facultative `WHERE` détermine les tableaux à supprimer.

Exemples

1. Supprimer toutes les lignes

DELETE FROM users;

Cet exemple supprime tous les tableaux de la table `users`, la vidant ainsi de sa substance.

2. Supprimer avec une condition

DELETE FROM orders
WHERE order_date < '2023-01-01';

Ici, la commande supprime tous les tableaux du tableau `orders` dont la `order_date` est antérieure au 1er janvier 2023.

3. Supprimer à l'aide d'une sous-requête

DELETE FROM employees
WHERE department_id IN (SELECT department_id FROM departments WHERE name = 'HR');

Cet exemple supprime les employés qui appartiennent au département HR en utilisant une sous-requête pour identifier les `department_id`s pertinents.

Conseils et bonnes pratiques

  • A utiliser avec précaution. Veillez toujours à ce que la clause `WHERE` soit exacte afin d'éviter toute perte de données involontaire.
  • Données de sauvegarde. Pensez à sauvegarder votre tableau ou votre base de données avant d'effectuer des suppressions à grande échelle.
  • Vérifiez avec SELECT. Exécutez une instruction `SELECT` avec la même condition `WHERE` pour vérifier quelles lignes seront supprimées.
  • Utilisez `RETURNING`. Si nécessaire, utilisez la clause `RETURNING` pour afficher les lignes qui ont été supprimées, ce qui peut être utile à des fins de vérification ou d'audit.
  • Limitez les suppressions. Dans les tableaux à fort volume, envisagez de procéder à des suppressions par lots afin de minimiser les blocages de table et l'impact sur les performances.
  • Pensez à CASCADE. Lorsque vous supprimez des lignes d'un tableau ayant des contraintes de clé étrangère, vous pouvez utiliser l'option `CASCADE` pour supprimer automatiquement toutes les lignes dépendantes dans les tableaux liés.
  • Traitement de la simultanéité. Soyez conscient que les opérations `DELETE` concurrentes peuvent conduire à des conditions de course. Utilisez des transactions ou des mécanismes de verrouillage appropriés pour gérer les suppressions simultanées.
  • Considérations sur les performances. Optimisez les opérations `DELETE` en vous assurant que les index sont en place pour les conditions de la clause `WHERE`, en particulier dans les tableaux de grande taille, afin d'améliorer les performances.