PostgreSQL DELETE: como eliminar conteúdo de uma tabela
O PostgreSQL DELETE pode ser utilizado para eliminar conteúdo de uma tabela. Além disso, este comando pode ser especificado através de cláusulas para que apenas determinadas linhas sejam elegíveis para eliminação. Uma vez que a eliminação não pode ser revertida, é importante utilizar o comando com muito cuidado.
O que é o PostgreSQL DELETE?
O comando DELETE é utilizado no PostgreSQL para eliminar registos de uma tabela. Pode utilizar a cláusula WHERE para selecionar registos específicos 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 definitivamente. Por este motivo, o comando deve ser utilizado com muita precaução.
PostgreSQL DELETE: sintaxe e funcionalidades
A sintaxe do PostgreSQL DELETE tem a seguinte estrutura básica:
DELETE FROM nombre_de_la_tabla
WHERE [condición]postgresqlA palavra-chave DELETE FROM inicia a eliminação na tabela especificada. Podes utilizar a cláusula WHERE para especificar em que linhas o conteúdo deve ser eliminado. Se pretenderes ter em conta várias condições, podes enumerá-las utilizando AND ou OR.
Antes de apagar dados, certifique-se de que dispõe de uma cópia de segurança atualizada da base de dados ou execute o processo de apagamento numa transação. Desta forma, poderá evitar a perda de dados importantes caso o comando seja executado incorretamente por descuido.
Apagar todo o conteúdo de uma tabela
A forma mais fácil de explicar como funciona DELETE no PostgreSQL é através de um exemplo prático. Para tal, utilizamos o comando CREATE TABLE para criar uma nova tabela no PostgreSQL chamada «Lista de clientes». Em seguida, utilizamos o [comando INSERT INTO](t3://page?uid=37087) para preenchê-la com várias informações. A tabela tem três colunas chamadas «ID», «Nome» e «Cidade» e contém inicialmente 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|postgresqlSe agora quisermos manter a tabela, mas apagar todo o conteúdo, utilizamos o PostgreSQL DELETE sem nenhuma cláusula adicional. O comando ficaria então assim para o nosso exemplo:
DELETE FROM lista_de_clientes;postgresqlApagar uma linha no PostgreSQL DELETE
Na maioria das vezes, porém, vais deparar-te com uma situação em que simplesmente desejas eliminar uma linha específica. Isso também é possível no PostgreSQL DELETE. Para tal, utilizamos 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;postgresqlEspecificar linhas com várias cláusulas
Podem ocorrer entradas duplicadas e, consequentemente, ambíguas, especialmente em tabelas extensas. Se quiser garantir que apenas a linha pretendida é eliminada, pode utilizar o PostgreSQL DELETE com cláusulas múltiplas. No nosso exemplo, temos dois clientes chamados «Sánchez» e queremos eliminar apenas a segunda entrada. Por isso, combinamos duas cláusulas. O código é o seguinte:
DELETE FROM lista_de_clientes
WHERE Nombre = 'Sánchez'
AND ID >= 3;postgresqlDesta forma, são eliminadas todas as linhas em que o nome «Sánchez» e o ID são iguais ou superiores 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 eliminação.