DELETE FROM [ ONLY ] tabela [ WHERE condição ]
O comando DELETE exclui as linhas que satisfazem a cláusula WHERE na tabela especificada.
Se a condição (cláusula WHERE) estiver ausente, o efeito é a exclusão de todas as linhas da tabela. O resultado vai ser uma tabela válida, porém vazia.
Tip: O comando TRUNCATE é uma extensão do PostgreSQL que fornece um mecanismo rápido para excluir todas as linhas de uma tabela.
Por padrão o DELETE exclui as linhas da tabela especificada e de todas as suas filhas. Para atualizar somente a tabela especificada deve ser utilizada a cláusula ONLY.
É necessário possuir acesso de escrita a uma tabela para poder modificá-la, assim como acesso de leitura em todas as tabelas cujos valores são lidos na condição da cláusula WHERE.
Remover todos os filmes, exceto os musicais:
DELETE FROM filmes WHERE tipo <> 'Musical'; SELECT * FROM filmes; cod | titulo | did | data_prod | tipo | duracao -------+---------------------------+-----+------------+---------+--------- UA501 | West Side Story | 105 | 1961-01-03 | Musical | 02:32 TC901 | The King and I | 109 | 1956-08-11 | Musical | 02:13 WD101 | Bed Knobs and Broomsticks | 111 | | Musical | 01:57 (3 rows)
Esvaziar a tabela filmes:
DELETE FROM filmes; SELECT * FROM filmes; cod | titulo | did | data_prod | tipo | duracao ------+--------+-----+-----------+------+--------- (0 rows)