Eu consigo utilizar os camandos COMMIT TRANSACTION ou ROLLBACK TRANSACTION sem a necessidade de declarar o begin no iníco do comando?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Eu consigo utilizar os camandos COMMIT TRANSACTION ou ROLLBACK TRANSACTION sem a necessidade de declarar o begin no iníco do comando?
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!