1
resposta

Dúvida

Eu consigo utilizar os camandos COMMIT TRANSACTION ou ROLLBACK TRANSACTION sem a necessidade de declarar o begin no iníco do comando?

1 resposta

Oi, Thiago, tudo bem?

Peço desculpas pela demora em retornar.

Não é possível utilizar os comandos COMMIT e ROLLBACK sem a declaração do bloco com BEGIN no início do comando.

Os comandos COMMIT e ROLLBACK são utilizados para confirmar ou desfazer uma transação no PostgreSQL, respectivamente. Nesse sentido, para que o PostgreSQL compreenda a qual bloco esses comandos fazem referência, é necessário delimitá-lo com BEGIN na parte inicial.

Para uma melhor compreensão, imagine o seguinte caso: você está em uma livraria online buscando por um livro que deseja muito ler, após encontrá-lo, você o adiciona ao carrinho de compras e parte para a compra em si. No entanto, antes de finalizar todo o processo, seu amigo envia uma mensagem dizendo que comprou exatamente esse livro de presente para você. Ufa, ainda bem que a sua compra não foi finalizada! Basta apenas cancelá-la que ficará tudo certo!

Nesse cenário, foi importante, antes de cancelar a compra, iniciá-la. Se a etapa inicial fosse pulada, a última não poderia ocorrer — e é exatamente isso que ocorre com as transações: comandos que confirmam ou desfazem uma ação (como COMMIT e ROLLBACK) só podem ocorrer quando definimos o início desta mesma ação (com BEGIN)!

Espero ter ajudado, Thiago. Caso surjam novas dúvidas, fico à disposição.

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.