3 comandos avançados para controle de transação – MySQL

Neste post vou mostrar para você como fazer rollback parcial de uma transação usando savepoint. Você irá aprender a como definir pontos de retornos dentro da transação para não precisar desfazer toda transação.

Comandos avançados para controle de transação

SAVEPOINT <identifier>

Define um ponto de chamada dentro de um conjunto de instruções SQL a partir de onde um ROLLBACK TO SAVEPOINT deve ser executado.

Exemplo:

START TRANSACTION;
comandos SQL…
SAVEPOINT cadastrocliente;
comandos SQL…
COMMIT;

ROLLBACK TO SAVEPOINT <identifier>

Desfaz todas as instruções SQL que foram realizadas após o ponto de chamada informado.

Atenção! Este comando não finaliza a transação.

START TRANSACTION;
comandos SQL…
SAVEPOINT cadastrocliente;
comandos SQL…
ROLLBACK TO SAVEPOINT cadastrocliente;
comandos SQL…
COMMIT;

RELEASE SAVEPOINT <identifier>

Libera um ponto de chamada previamente definido.

Atenção! Este comando não finaliza a transação.

START TRANSACTION;
comandos SQL…
SAVEPOINT cadastrocliente;
comandos SQL…
ROLLBACK TO SAVEPOINT cadastrocliente;
RELEASE SAVEPOINT cadastrocliente;
comandos SQL…
COMMIT;

O RELEASE SAVEPOINT serve para liberar o identificador do SAVEPOINT para ser utilizado novamente dentro da mesma transação.

Os comandos COMMIT e ROLLBACK liberam da memória todos os SAVEPOINT que foram previamente definidos na transação.

Marcos de P. Muniz

Graduado em Sistemas de Informação pela UEMG, é Pós Graduado em Segurança da Informação pela Faculdade Pitágoras, é desenvolvedor PHP desde 2006, trabalha como Analista / Desenvolvedor em uma empresa que atua na área de ensino a distância, faz freelancer criando sites, sistemas e portais utilizando PHP, MySQL e jQuery.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *