A instrução `DELETE` no PostgreSQL é usada para remover linhas de uma tabela. Ele permite a exclusão de registros específicos com base em uma condição ou de todos os registros se nenhuma condição for especificada.
Uso
A instrução `DELETE` é usada quando você precisa remover dados de uma tabela. É comumente usado para limpar dados obsoletos ou incorretos.
Nessa sintaxe, `DELETE FROM nome_da_tabela` especifica a tabela da qual você deseja excluir as tabelas, enquanto a `condição WHERE` opcional determina quais linhas serão removidas.
Esse exemplo exclui todos os registros da tabela `users`, esvaziando-a efetivamente.
2. Excluir com uma condição
DELETEFROM orders
WHERE order_date <'2023-01-01';Tecnologia
Aqui, o comando remove todas as linhas da tabela `orders` em que a `order_date` é anterior a 1º de janeiro de 2023.
3. Excluir usando uma subconsulta
DELETEFROM employees
WHERE department_id IN(SELECT department_id FROM departments WHERE name ='HR');Tecnologia
Este exemplo exclui os funcionários que pertencem ao departamento de RH, utilizando uma subconsulta para identificar `department_id`s relevantes.
Dicas e práticas recomendadas
Use com cuidado. Certifique-se sempre de que a cláusula `WHERE` esteja correta para evitar a perda não intencional de dados.
Dados de backup. Considere a possibilidade de fazer backup da tabela ou do banco de dados antes de realizar exclusões em grande escala.
Verifique com o SELECT. Execute uma instrução `SELECT` com a mesma condição `WHERE` para verificar quais linhas serão excluídas.
Use `RETURNING`. Se necessário, use a cláusula `RETURNING` para gerar as linhas que foram excluídas, o que pode ser útil para fins de verificação ou auditoria.
Limitar as exclusões. Em tabelas de alto volume, considere a possibilidade de excluir em lotes para minimizar os bloqueios de tabela e os impactos no desempenho.
Consider CASCADE. Ao excluir linhas de uma tabela que tenha restrições de chave estrangeira, você pode usar a opção `CASCADE` para excluir automaticamente quaisquer linhas dependentes em tabelas relacionadas.
Manuseio de simultaneidade. Esteja ciente de que operações `DELETE` simultâneas podem levar a condições de corrida. Use transações ou mecanismos de bloqueio apropriados para gerenciar as exclusões simultâneas.
Considerações sobre o desempenho. Otimize as operações `DELETE` assegurando que os índices estejam em vigor para as condições na cláusula `WHERE`, especialmente em tabelas grandes, para melhorar o desempenho.
A instrução `DELETE` no PostgreSQL é usada para remover linhas de uma tabela. Ele permite a exclusão de registros específicos com base em uma condição ou de todos os registros se nenhuma condição for especificada.
Uso
A instrução `DELETE` é usada quando você precisa remover dados de uma tabela. É comumente usado para limpar dados obsoletos ou incorretos.
Nessa sintaxe, `DELETE FROM nome_da_tabela` especifica a tabela da qual você deseja excluir as tabelas, enquanto a `condição WHERE` opcional determina quais linhas serão removidas.
Exemplos
1. Excluir todas as linhas
Esse exemplo exclui todos os registros da tabela `users`, esvaziando-a efetivamente.
2. Excluir com uma condição
Aqui, o comando remove todas as linhas da tabela `orders` em que a `order_date` é anterior a 1º de janeiro de 2023.
3. Excluir usando uma subconsulta
Este exemplo exclui os funcionários que pertencem ao departamento de RH, utilizando uma subconsulta para identificar `department_id`s relevantes.
Dicas e práticas recomendadas