Como desfazer uma operação no postgres, como um update ou delete ?
Como desfazer uma operação no postgres, como um update ou delete ?
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.