Suppression de valeurs d'une colonne spatiale ST_Geometry

L'instruction SQL DELETE supprime des lignes de données d'une table ou vue spécifiée.

Etapes :
  1. Voici des requêtes d'exemple qui suppriment des données pour chaque base de données prise en charge :
    • Cet exemple supprime les valeurs d'une géodatabase dans Oracle à l'aide du type spatial, en fonction d'un filtre spatial :
      DELETE FROM sensitive_areas WHERE names
      (SELECT sa.names 
      FROM sensitive_areas sa, hazardous_sites hs
      WHERE sde.st_overlaps (sa.zone, sde.st_buffer (hs.location,.01)) = 1);
    • Cet exemple supprime les valeurs d'une géodatabase dans PostgreSQL à l'aide du type spatial, en fonction d'un filtre spatial :
      DELETE FROM sensitive_areas 
      WHERE names EXISTS (SELECT sa.names
      FROM sensitive_areas sa, hazardous_sites hs
      WHERE st_overlaps (sa.zone, st_buffer (hs.location,.01)) = 't');
    • Dans IBM DB2, utilisez l'instruction suivante :
      DELETE FROM sensitive_areas 
      WHERE names (SELECT sa.names 
      FROM sensitive_areas sa, hazardous_sites hs 
      WHERE db2gse.st_overlaps (sa.zone, db2gse.st_buffer (hs.location,.01)) = 1);
    • Informix ne prend pas en charge la modification d'une table ou d'une vue utilisée dans une sous-requête. Par conséquent, scindez la requête en deux parties. Vous pouvez alors effectuer une sélection pour la placer dans une table temporaire et finalement supprimer cette sélection en supprimant la table temporaire.
      SELECT sa.name FROM
      sensitive_areas sa, hazardous_sites hs
      WHERE st_overlaps (sa.zone, st_buffer (hs.location,.01)) 
      INTO TEMP tempTable;
      
      DELETE FROM sensitive_areas WHERE name IN (select name from tempTable);

7/10/2012