DELETE

Name

DELETE  --  Borra filas de una tabla

Synopsis

DELETE FROM table [ WHERE condition ] 

Inputs

table

El nombre de una tabla existente.

condition

Esta es una consulta SQL de selección la cual devuelve las filas a ser borradas.

Referirse al comando SELECT para una mayor descripción de la clausula WHERE.

Outputs

DELETE count

Mensaje devuelto si los items son borrados exitosamente. El valor count es la cantidad de filas borradas.

Si count es 0, ninguna fila fue borrada.

Description

DELETE borra las filas que satisfacen la clausula WHERE de la tabla especificada.

Si la condicion (clusula WHERE) esta ausente, el efecto es borrar todas las filas de la tabla. El resultado es una tabla valida, pero vacia.

Tip: TRUNCATE es una extensión de Postgres el cual provee un mecanismo más rápido para borrar todas las filas de una tabla.

Para modificar la tabla usted debe poseer acceso de escritura a la misma, asi como acceso de lectura a cualquier tabla cuyos valores son leidos en la condicion.

Uso

Borra todos los films excepto los musicales:

DELETE FROM films WHERE kind <> 'Musical';
SELECT * FROM films;

    code |title                    |did| date_prod|kind      |len
-----+-------------------------+---+----------+----------+------
UA501|West Side Story          |105|1961-01-03|Musical   | 02:32
TC901|The King and I           |109|1956-08-11|Musical   | 02:13
WD101|Bed Knobs and Broomsticks|111|          |Musical   | 01:57
(3 rows)  

Borra completamente la tabla films:

DELETE FROM films;
SELECT * FROM films;

    code|title|did|date_prod|kind|len
----+-----+---+---------+----+---
(0 rows)  

Compatibility

SQL92

SQL92 permite un comando DELETE posicionado:

DELETE FROM table WHERE CURRENT OF cursor 
donde cursor corresponde a un cursor abierto. En Postgres los cursores interactivos son de solo-lectura.