0

Atomicidade em chamadas SQL

Vinicius Souza
Vinicius Souza

Muitas vezes precisamos fazer uma série de operações INSERT, UPDATE e DELETE que devem acontecer em conjunto, ou não ocorrer de forma aluma.

Por exemplo, se você transfere dinheiro para alguém pelo PIX. Se o sistema não for capaz de entregar o dinheiro para quem vai receber, ele não pode tirar o dinheiro da sua conta. Quando o comando SQL não garante isso, seu dinheiro vai simplesmente sumir.

Uma boa fotma de resolver isso é usando TRANSACTION - em português, transação.

A transação cria uma atomicidade: todas as ações devem ser bem-sucedidas ou falharem juntas.


O comando para criar uma transação é

BEGIN TRANSACTION;

Depois desse comando, qualquer instrução INSERT, DELETE ou UPDATE vai ficar marcada para ser cancelada se necessário.

Após rodar, o sistema pode encerrar a transação se tudo correr bem:

END TRANSACTION
#ou, mais comum:
COMMIT

Se algo der errado, podemos programar um botão de cancelar que chama o comando

ROLLBACK

Pronto, agora nosso sitema de transferência via PIX está seguro. Nenhum cliente vai ficar triste por perder uma compra e o dinheiro ao mesmo tempo.

0
0

Comentários (1)

None

Brasil