Translate

sábado, 22 de fevereiro de 2014

COMMIT, ROLLBACK e SAVEPOINT

Dentro da sessão de um usuário, para efetivar uma ou mais transações, utiliza-se o comando "commit" e para desfazer uma ou mais transações utiliza-se o comando "rollback".
Vale ressaltar que caso já tenha sido aplicado o commit não é mais possível utilizar o rollback e vice-versa.

Savepoint é o comando utilizado para marcar pontos de divisão lógicos dentro da transação, ou seja, pode-se estabelecer um ponto de salvamento e, posteriormente, desfazer todos os comandos executados após o seu estabelecimento:

Ex:

create table tabela_teste
(col_teste number)

BEGIN    
  INSERT INTO tabela_teste VALUES (1);
  SAVEPOINT meu_savepoint;
  INSERT INTO tabela_teste VALUES (2);
  ROLLBACK TO SAVEPOINT meu_savepoint;
  INSERT INTO tabela_teste VALUES (3);
  INSERT INTO tabela_teste VALUES (4);
    
  COMMIT; 
END;

SELECT * FROM tabela_teste;

col_teste
------------
1
3
4

Nenhum comentário:

Postar um comentário