Excluir Registros no PostgreSQL – DELETE e TRUNCATE TABLE

Como excluir registros no PostgreSQL com DELETE e TRUNCATE TABLE

Uma das tarefas mais corriqueiras no gerenciamento de bancos de dados relacionais é a exclusão de determinados registros (linhas). Por exemplo, podemos excluir um item de uma tabela de produtos que não é mais comercializado por um estabelecimento, ou ainda excluir um cliente que se descadastrou do sistema.

Além disso, em alguns casos, como testes no banco de dados, pode ser necessário excluir todas as linhas de uma tabela de uma vez – ou seja, limpar a tabela.

Podemos excluir registros de uma tabela no PostgreSQL por meio do emprego de duas declarações distintas: as cláusulas DELETE FROM e TRUNCATE TABLE.

Logo do PostgreSQL

Cláusula DELETE FROM

Com a cláusula DELETE FROM apagamos linhas específicas, filtradas por meio de condições especificadas em uma cláusula WHERE

Sintaxe:

DELETE FROM tabela
WHERE coluna operador valor;

Exemplos

Para nossos exemplos de exclusão de registros com DELETE FROM vamos inserir primeiramente mais alguns registros na tabela de produtos de nosso banco de dados de testes:

INSERT INTO produtos (cod_produto,nome_produto,descricao,preco,qtde_estoque)
VALUES
(12,'Sabão em Pó','Caixa de sabão em pó de 1/2 kg',12.50,5),
(13,'Biscoito','Pacote de biscoito integral 110g',3.45,16),
(14,'Manteiga','Pote de manteiga 250g',8.70,5);

Vejamos o conteúdo atual da tabela de produtos:

SELECT * FROM produtos;

 

1 – Excluir o produto cujo código é igual a 12 da tabela de produtos

DELETE FROM produtos
WHERE cod_produto = 12;

2 – Excluir o produto de nome Manteiga da tabela de produtos

DELETE FROM produtos
WHERE nome_produto = 'Manteiga';

3 – Excluir todos os produtos cuja quantidade em estoque seja igual ou inferior a 5 unidades

DELETE FROM produtos
WHERE qtde_estoque <= 5;

Executamos uma consulta à tabela de produtos para verificar se os registros foram realmente apagados:

SELECT * FROM produtos;

 

Cláusula TRUNCATE TABLE

Com a cláusula TRUNCATE TABLE podemos excluir  todos os registros de uma tabela em uma única operação, sem no entanto registrar as exclusões de linhas individuais.

Executar a cláusula TRUNCATE TABLE equivale a executar uma instrução DELETE FROM, porém sem o emprego de condições de filtragem com a cláusula WHERE. Deste modo, TRUNCATE TABLE é empregada para excluir completamente o conteúdo de uma tabela no PostgreSQL.

Porém, a cláusula TRUNCATE TABLE tem maior performance que a declaração DELETE FROM, sendo mais rápida, utilizando menos recursos de sistema e log de transações durante sua execução.

Exemplo de TRUNCATE TABLE

Vamos a um exemplo. Primeiramente, visualizamos o conteúdo da tabela de pedidos de nosso banco de dados de testes:

SELECT * FROM pedidos;

Executamos agora TRUNCATE TABLE para apagar o conteúdo deste tabela:

TRUNCATE TABLE pedidos;

Conferimos se a tabela está limpa:

SELECT * FROM pedidos;

Todo o conteúdo da tabela foi excluído, mas a tabela continua existindo no banco de dados. Vamos agora inserir novos registros nesta tabela com a declaração INSERT INTO, pois a vamos utilizar nas pŕoximas lições de nosso curso de PostgreSQL:

INSERT INTO pedidos (cod_cliente, cod_produto, qtde)
VALUES
(1,2,3),
(2,3,2),
(1,3,4),
(2,6,3),
(2,5,2),
(3,8,5);

Finalmente, conferimos se esses novos registros foram inseridos corretamente na tabela de pedidos:

SELECT * FROM pedidos;

É isso aí!

 

Sobre Fábio dos Reis (1394 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*