La declaración SQL DELETE quita filas de datos de una tabla o vista específicas.
- Abra un editor SQL y conéctese a la base de datos.
Conéctese usando una cuenta que tenga privilegios para eliminar de la tabla.
- A continuación se presentan consultas de ejemplo que eliminan datos para cada base de datos compatible:
- Este ejemplo elimina valores de una tabla de Oracle en función de un filtro espacial:
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);
- Este ejemplo elimina valores de una tabla de PostgreSQL en función de un filtro espacial:
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');
- Este ejemplo elimina valores de una tabla de una base de datos de SQLite en función de un filtro espacial:
DELETE FROM sensitive_areas WHERE names (SELECT sa.names FROM sensitive_areas sa, hazardous_sites hs WHERE st_overlaps (sa.zone, st_buffer (hs.location,.01)) = 1);
- En IBM Db2, use la siguiente sentencia:
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 no admite la modificación de una tabla o vista que se usa en una subconsulta. Por ello, la consulta se debe dividir en dos partes: seleccione en una tabla temporal y elimine mediante esa tabla temporal.
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);
- Este ejemplo elimina valores de una tabla de Oracle en función de un filtro espacial: