Po­s­t­gre­S­QL DELETE se puede utilizar para eliminar contenido de una tabla. Además, este comando puede es­pe­ci­fi­car­se mediante cláusulas para que solo ciertas filas sean elegibles para su eli­mi­na­ción. Dado que la eli­mi­na­ción no se puede deshacer, es im­po­r­ta­n­te usar el comando con mucho cuidado.

¿Qué es Po­s­t­gre­S­QL DELETE?

El comando DELETE se usa en Po­s­t­gre­S­QL para borrar entradas de una tabla. Puedes utilizar la cláusula WHERE para se­le­c­cio­nar filas es­pe­cí­fi­cas 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á de­fi­ni­ti­va­me­n­te. Por este motivo, se debe utilizar el comando con mucha pre­cau­ción.

Se­r­vi­do­res dedicados
Re­n­di­mie­n­to e in­no­va­ción
  • Pro­ce­sa­do­res de última ge­ne­ra­ción
  • Hardware dedicado de alto re­n­di­mie­n­to
  • Seguridad de primer nivel

Po­s­t­gre­S­QL DELETE: sintaxis y fu­n­cio­na­li­dad

La sintaxis de Po­s­t­gre­S­QL DELETE tiene la siguiente es­tru­c­tu­ra básica:

DELETE FROM nombre_de_la_tabla 
WHERE [condición]
po­s­t­gre­s­ql

La palabra clave DELETE FROM inicia el borrado en la tabla es­pe­ci­fi­ca­da. Puedes utilizar la cláusula WHERE para es­pe­ci­fi­car en qué filas se debe eliminar el contenido. Si deseas tener en cuenta varias co­n­di­cio­nes, puedes enu­me­rar­las usando AND o OR.

Nota

Antes de borrar datos, debes ase­gu­rar­te de que dispones de una copia de seguridad actual de la base de datos o ejecutar el proceso de borrado en una tra­n­sac­ción. De este modo, puedes evitar que se pierdan datos im­po­r­ta­n­tes si el comando se ejecuta in­co­rre­c­ta­me­n­te por descuido.

Eliminar todo el contenido de una tabla

La forma más fácil de explicar cómo funciona DELETE en Po­s­t­gre­S­QL es con un ejemplo práctico. Para ello, usamos el comando CREATE TABLE para crear una nueva tabla Po­s­t­gre­S­QL llamada “Lista de clientes”. A co­n­ti­nua­ción, usamos INSERT INTO para co­m­ple­tar­la con varias in­fo­r­ma­cio­nes. La tabla tiene tres columnas llamadas “ID”, “Nombre” y “Ciudad” e ini­cia­l­me­n­te contiene cuatro entradas. Este es el aspecto que tiene:

|ID|Nombre|Ciudad| 
|-|-|-| 
|1|Sánchez|Los Ángeles| 
|2|Morales|Nueva York| 
|3|Santos|Chicago| 
|4|Sánchez|San Antonio|
po­s­t­gre­s­ql

Si ahora queremos mantener la tabla, pero borrar todo el contenido, uti­li­za­mos Po­s­t­gre­S­QL DELETE sin una cláusula adicional. El comando entonces sería así para nuestro ejemplo:

DELETE FROM lista_de_clientes;
po­s­t­gre­s­ql

Borrar una fila con Po­s­t­gre­S­QL DELETE

Más a menudo, sin embargo, te en­co­n­tra­rás en una situación en la que si­m­ple­me­n­te quieres eliminar una fila es­pe­cí­fi­ca. Esto también se hace con Po­s­t­gre­S­QL DELETE. Para ello, uti­li­za­mos 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;
po­s­t­gre­s­ql

Es­pe­ci­fi­car filas con múltiples cláusulas

Pueden pro­du­ci­r­se entradas du­pli­ca­das y, por tanto, ambiguas, es­pe­cia­l­me­n­te en tablas largas. Si deseas ase­gu­rar­te de que solo se elimina la fila deseada, puedes utilizar Po­s­t­gre­S­QL 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, co­m­bi­na­mos dos cláusulas. El código es el siguiente:

DELETE FROM lista_de_clientes 
WHERE Nombre = 'Sánchez' 
AND ID >= 3;
po­s­t­gre­s­ql

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.

Ir al menú principal