Oi, Marcos! Tudo bem?
Desde já, peço desculpas pela demora em retornar.
Infelizmente não há uma forma direta de desfazer um DELETE
. Uma vez que os dados já foram excluídos, não há um comando que possa simplesmente revertê-los. É por isso que é tão importante tomar cuidado ao executar comandos de exclusão.
No entanto, existe um recurso muito interessante que podemos utilizar para evitar que problemas desse tipo aconteçam: as transações! Por meio delas, conseguimos efetuar várias ações sem que elas sejam aplicadas de fato em nosso banco de dados — o que só ocorre após a nossa ordem de confirmação/rejeição.
A transação é iniciada através da cláusula BEGIN
. Depois disso, podemos escrever e executar todos os comandos que desejamos (inclusive utilizar o DELETE
). Por fim, usamos as cláusulas ROLLBACK
(cujo objetivo é cancelar as ações feitas) ou COMMIT
(cujo objetivo é efetivar as ações feitas) para finalizar a transação.
Para realizar uma transação em linha de comando, teremos que realizar as seguintes etapas:
1 - Acessar o psql;
2 - Informar as credenciais do nosso usuário (caso você tenha seguido os passos do instrutor, basta pressionar a tecla ENTER até chegar em "Password for user postgres" e digitar a sua senha);
3 - Selecionar o banco em que você irá trabalhar:
\c nome-do-banco-de-dados;
Observação: o comando \c
indica que estamos iniciando uma conexão. Em nome-do-banco-de-dados
, substituir pelo nome do banco de dados em que você está trabalhando neste momento!
4 - Iniciar a transação:
BEGIN;
5 - Realizar os comandos que deseja, como um SELECT
ou INSERT
;
6 - Confirmar as ações feitas com o comando COMMIT
ou reverter as ações com ROLLBACK
.
A partir disso, temos a possibilidade de deletar informações e reverter tal procedimento caso seja necessário!
Marcos, algo muito importante a ser levado em conta ao trabalhar com a linguagem SQL em linha de comando: o uso de ponto e vírgula é muito importante para que tudo seja executado corretamente. Além disso, dependendo do que desejamos fazer, o terminal pode ser um limitador, afetando a legibilidade de comandos e a manipulação dos mesmos — logo, é interessante utilizarmos as próprias ferramentas ofertadas pelo sistema gerenciador de banco de dados, como o pgAdmin4, quando for possível.
Espero ter ajudado com a explicação, caso surja alguma dúvida, fico à disposição para auxiliar!
Abraços!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.