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.
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í!
Escreva um comentário