PostgreSQL DELETE se puede utilizar para eliminar contenido de una tabla. Además, este comando puede especificarse mediante cláusulas para que solo ciertas filas sean elegibles para su eliminación. Dado que la eliminación no se puede deshacer, es importante usar el comando con mucho cuidado.

¿Qué es PostgreSQL DELETE?

El comando DELETE se usa en PostgreSQL para borrar entradas de una tabla. Puedes utilizar la cláusula WHERE para seleccionar filas específicas de las que se eliminará el contenido. Si omites la cláusula WHERE al utilizar el comando, todo el contenido de la tabla en cuestión se eliminará definitivamente. Por este motivo, se debe utilizar el comando con mucha precaución.

Servidores dedicados
Rendimiento a través de innovación
  • Tu propio servidor en un hardware dedicado
  • Integración en el cloud y facturación por minuto
  • Respaldados por procesadores Intel® Xeon® y AMD

PostgreSQL DELETE: sintaxis y funcionalidad

La sintaxis de PostgreSQL DELETE tiene la siguiente estructura básica:

DELETE FROM nombre_de_la_tabla 
WHERE [condición]
postgresql

La palabra clave DELETE FROM inicia la eliminación en la tabla especificada. Puedes utilizar la cláusula WHERE para especificar en qué filas se debe eliminar el contenido. Si deseas tener en cuenta varias condiciones, puedes enumerarlas usando AND o OR.

Nota

Antes de borrar datos, debes asegurarte de que dispones de una copia de seguridad actual de la base de datos o ejecutar el proceso de borrado en una transacción. De este modo, puedes evitar que se pierdan datos importantes si el comando se ejecuta incorrectamente por descuido.

Eliminar todo el contenido de una tabla

La forma más fácil de explicar cómo funciona DELETE en PostgreSQL es con un ejemplo práctico. Para ello, usamos el comando CREATE TABLE para crear una nueva tabla PostgreSQL llamada “Lista de clientes”. A continuación, usamos INSERT INTO para completarla con varias informaciones. La tabla tiene tres columnas llamadas “ID”, “Nombre” y “Ciudad” e inicialmente contiene cuatro entradas. Este es el aspecto que tiene:

|ID|Nombre|Ciudad| 
|-|-|-| 
|1|Sánchez|Córdoba| 
|2|Morales|León| 
|3|Simón|Salamanca| 
|4|Sánchez|San Sebastián|
postgresql

Si ahora queremos mantener la tabla, pero borrar todo el contenido, utilizamos PostgreSQL DELETE sin una cláusula adicional. El comando entonces sería así para nuestro ejemplo:

DELETE FROM lista_de_clientes;
postgresql

Borrar una fila con PostgreSQL DELETE

Más a menudo, sin embargo, te encontrarás en una situación en la que simplemente quieres eliminar una fila específica. Esto también se hace con PostgreSQL DELETE. Para ello, utilizamos el comando con una cláusula WHERE. Para nuestro ejemplo, queremos eliminar el cliente “Morales” con el ID “2”. El código apropiado sería el siguiente:

DELETE FROM lista_de_clientes 
WHERE ID = 2;
postgresql

Especificar filas con múltiples cláusulas

Pueden producirse entradas duplicadas y, por tanto, ambiguas, especialmente en tablas largas. Si deseas asegurarte de que solo se elimina la fila deseada, puedes utilizar PostgreSQL DELETE con cláusulas múltiples. En nuestro ejemplo, tenemos dos clientes llamados “Sánchez” y solo queremos eliminar la segunda entrada. Por lo tanto, combinamos dos cláusulas. El código es el siguiente:

DELETE FROM lista_de_clientes 
WHERE Nombre = 'Sánchez' 
AND ID >= 3;
postgresql

De esta forma, se eliminan todas las filas en las que el nombre “Sánchez” y el ID es mayor o igual que “3”. Como la primera entrada con el nombre tiene un ID inferior a “3”, esta entrada permanece en la base de datos incluso después del comando de borrado.

¿Le ha resultado útil este artículo?
Ir al menú principal