O Post­greSQL DELETE pode ser utilizado para eliminar conteúdo de uma tabela. Além disso, este comando pode ser es­pe­ci­fi­cado através de cláusulas para que apenas de­ter­mi­na­das linhas sejam elegíveis para eli­mi­na­ção. Uma vez que a eli­mi­na­ção não pode ser revertida, é im­por­tante utilizar o comando com muito cuidado.

O que é o Post­greSQL DELETE?

O comando DELETE é utilizado no Post­greSQL para eliminar registos de uma tabela. Pode utilizar a cláusula WHERE para se­le­ci­o­nar registos es­pe­cí­fi­cos cujo conteúdo será eliminado. Se omitir a cláusula WHERE ao utilizar o comando, todo o conteúdo da tabela em questão será eliminado de­fi­ni­ti­va­mente. Por este motivo, o comando deve ser utilizado com muita precaução.

Post­greSQL DELETE: sintaxe e fun­ci­o­na­li­da­des

A sintaxe do Post­greSQL DELETE tem a seguinte estrutura básica:

DELETE FROM nombre_de_la_tabla 
WHERE [condición]
post­gresql

A palavra-chave DELETE FROM inicia a eli­mi­na­ção na tabela es­pe­ci­fi­cada. Podes utilizar a cláusula WHERE para es­pe­ci­fi­car em que linhas o conteúdo deve ser eliminado. Se pre­ten­de­res ter em conta várias condições, podes enumerá-las uti­li­zando AND ou OR.

Nota

Antes de apagar dados, cer­ti­fi­que-se de que dispõe de uma cópia de segurança atu­a­li­zada da base de dados ou execute o processo de apa­ga­mento numa transação. Desta forma, poderá evitar a perda de dados im­por­tan­tes caso o comando seja executado in­cor­re­ta­mente por descuido.

Apagar todo o conteúdo de uma tabela

A forma mais fácil de explicar como funciona DELETE no Post­greSQL é através de um exemplo prático. Para tal, uti­li­za­mos o comando CREATE TABLE para criar uma nova tabela no Post­greSQL chamada «Lista de clientes». Em seguida, uti­li­za­mos o [comando INSERT INTO](t3://page?uid=37087) para preenchê-la com várias in­for­ma­ções. A tabela tem três colunas chamadas «ID», «Nome» e «Cidade» e contém ini­ci­al­mente quatro entradas. Eis o seu aspeto:

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

Se agora quisermos manter a tabela, mas apagar todo o conteúdo, uti­li­za­mos o Post­greSQL DELETE sem nenhuma cláusula adicional. O comando ficaria então assim para o nosso exemplo:

DELETE FROM lista_de_clientes;
post­gresql

Apagar uma linha no Post­greSQL DELETE

Na maioria das vezes, porém, vais deparar-te com uma situação em que sim­ples­mente desejas eliminar uma linha es­pe­cí­fica. Isso também é possível no Post­greSQL DELETE. Para tal, uti­li­za­mos o comando com uma cláusula WHERE. No nosso exemplo, queremos eliminar o cliente «Morales» com o ID «2». O código adequado seria o seguinte:

DELETE FROM lista_de_clientes 
WHERE ID = 2;
post­gresql

Es­pe­ci­fi­car linhas com várias cláusulas

Podem ocorrer entradas du­pli­ca­das e, con­se­quen­te­mente, ambíguas, es­pe­ci­al­mente em tabelas extensas. Se quiser garantir que apenas a linha pre­ten­dida é eliminada, pode utilizar o Post­greSQL DELETE com cláusulas múltiplas. No nosso exemplo, temos dois clientes chamados «Sánchez» e queremos eliminar apenas a segunda entrada. Por isso, com­bi­na­mos duas cláusulas. O código é o seguinte:

DELETE FROM lista_de_clientes 
WHERE Nombre = 'Sánchez' 
AND ID >= 3;
post­gresql

Desta forma, são eli­mi­na­das todas as linhas em que o nome «Sánchez» e o ID são iguais ou su­pe­ri­o­res a «3». Como a primeira entrada com esse nome tem um ID inferior a «3», essa entrada permanece na base de dados mesmo após o comando de eli­mi­na­ção.

Ir para o menu principal