Jump to content
Fórum Script Brasil
  • 0

Transações, Rollback


Helio13
 Share

Question

Boa tarde!

Estou com uma duvida, e queria ver se alguém me podia ajudar...!

Eu estou a fazer um procedimento com transações e gostaria que só acontecesse o COMMIT senão ocorre-se nenhum erro, caso ocorre-se ele fazia o ROLLBACK

O que tenho é isto, mas não sei se posso fazer isto...!?

BEGIN

SAVEPOINT ponto_de_salvamento;

DECLARE HANDLER;

START TRANSACTION;

Call descritores_copy;
Call achados_copy;
Call adornos_copy;
Call ceramicas_copy;
Call fauna_copy;
Call industrialiticapolida_copy;
Call industrialitica_copy;
Call industriaossea_copy;
Call metais_copy;
Call ossoshumanos_copy;

IF HANDLER <> O THEN
ROLLBACK TO ponto_de_salvamento;
ELSE
COMMIT;
end if;

END

Alguém me pode ajudar?

Cumprimentos

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Oi 'Helio13',

Se o controle de commit funciona do jeito que você quer eu não sei pois nunca testei desta forma. Acredito que deverá funcionar se as regras abaixo foram seguidas.

1 - Todas as tabelas desta transação deverão ser pertencer ao Engine InnoDB;

2 - A variável Autocommit deverá ser setada para ZERO;

3 - As transações deverão estar em um bloco START TRANSACTION ... COMMIT (o rollback é automático).

Pessoalmente eu montaria uma procedure única para o acionamento desta transação. (É mais fácil de saber onde foi o problema e consertá-lo do que ficar procurando em qual procedure isto aconteceu).

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.5k
×
×
  • Create New...