2
respostas

ROLL BACK

Como desfazer uma operação no postgres, como um update ou delete ?

2 respostas

Olá Lucas, tudo bem?

Para desfazer uma operação como um Update ou Delete no PostegreSQL, é necessário que estas operações sejam feitas dentro de uma transação explícita (uma transação é uma unidade lógica de processamento que tem por objetivo preservar a integridade e a consistência dos dados) ou seja você precisa informar ao PostgreSQL que está iniciando uma bloco de transação, caso contrario não é possível reverter uma operação.

Na documentação do PostgreSQL , informa que o PostgreSQL trata cada instrução SQL como sendo executada dentro de uma transação. Se você não emitir um comando BEGIN, cada instrução individual terá um comando implícito BEGIN e (se for bem-sucedido) um COMMIT. Por este motivo você não consegue reverter as operações que foram bem sucedidas.

Para iniciar uma transação, você utiliza o comando BEGIN, executa todos as operações e finaliza a transação com um COMMIT ou um ROLLBACK

BEGIN;

UPDATE tabela SET campo  = 'teste' WHERE id = 0;

ROLLBACK;

No Curso de PostgreSQL: Comandos DML e DDL, na aula 04 Alteração dos Dados, especificamente na atividade 05 Transações o instrutor explica como funciona as transações no PostrgeSQL, indico que você veja está aula, assim ti ajudara a entender ainda mais este assunto.

Espero ter ajudado, qualquer nova dúvida é só falar e bons estudos!

Oii boa noite, é vi aqui no exemplo anterior bacana mesmo mas não é uam boa pratica né, toda vida fazer uma transação ao fazer um delete ou update hehe Mas muito bacana.