Definição
Rollback de transação é o desfazimento das alterações de uma transação não confirmada. Enquanto a transação não é confirmada, o banco pode cancelá-la e voltar ao estado anterior, como se as gravações provisórias nunca tivessem existido.
O estado antes, durante e depois da falha
Antes da transação, o banco guarda o estado estável. Durante a execução, as gravações ficam visíveis somente para a própria transação. Se uma etapa falha, o rollback descarta o trabalho parcial e restaura o estado inicial.
BEGIN;
INSERT INTO pedidos (id, cliente_id, total) VALUES (102, 7, 80.00);
ROLLBACK;O comando ROLLBACK interrompe a transação e descarta as gravações provisórias. Depois dele, a próxima operação começa um novo ciclo, e o banco trata o conjunto anterior como se nunca tivesse existido.
Rollback não é backup nem versão de aplicação
Rollback de transação não equivale a restaurar backup nem a voltar uma versão da aplicação. Ele atua sobre alterações ainda não confirmadas em uma única transação. Backup e deploy tratam de escalas diferentes, com ferramentas próprias e consequências próprias.
Falha comum e como verificar
A falha mais comum é esquecer o desfazimento quando uma etapa lança erro, confirmando a transação com o trabalho parcial. Em uma rotina que grava o pedido e depois os itens, o rollback precisa ser o encerramento do caminho de erro, e sem ele o cabeçalho fica no banco sem os itens. Para verificar, force uma falha no meio da transação e consulte as tabelas depois do encerramento: nenhuma gravação provisória deve permanecer, e uma nova transação deve começar do estado anterior. Quando o registro parcial sobrevive, o tratamento de erro não está chamando o rollback.
Veja o desfecho oposto: a confirmaçãoDúvidas frequentes
Perguntas frequentes sobre Rollback de transação
- Quando o rollback acontece?
- Quando a transação é cancelada, por erro da operação ou por comando explícito, antes da confirmação.
- Rollback apaga backups?
- Não. Rollback desfaz alterações não confirmadas. Backup restaura um estado anterior do banco inteiro.
- Depois do rollback os registros somem?
- As gravações provisórias somem. Registros já confirmados antes da transação permanecem intactos.
Para continuar
Recursos relacionados
Documentação
PostgreSQL: transactions
Explica a confirmação e o desfazimento das transações.
Abrir recursoDocumentação
SQLite: transaction
Documenta BEGIN, COMMIT e ROLLBACK e o cancelamento de alterações.
Abrir recursoAplicação na formação
Formação DevOps
Na Formação DevOps, o rollback restaura o estado anterior do banco quando uma operação automatizada falha no meio.
Conhecer a formaçãoFontes consultadas
Referências deste verbete
Este verbete ajudou você?
Obrigado pela resposta. Ela fica salva apenas neste navegador.