Sobes.tech
Middle

Que comandos de gestão de transações conhece?

sobes.tech IA

Resposta da IA

BEGIN (pode ser implícito), COMMIT, ROLLBACK.

  • BEGIN: Inicia uma nova transação. É opcional para o primeiro operador DML numa sessão, pois a transação começará implicitamente.

    BEGIN TRANSACTION;
    
  • COMMIT: Guarda todas as alterações feitas na transação atual e termina-a.

    COMMIT;
    
  • ROLLBACK: Desfaz todas as alterações feitas na transação atual e termina-a.

    ROLLBACK;
    

Algumas bases de dados também suportam:

  • SAVEPOINT: Define um ponto de salvaguarda dentro da transação atual. Permite regressar a esse ponto sem desfazer toda a transação.

    SAVEPOINT my_savepoint;
    
  • ROLLBACK TO SAVEPOINT: Desfaz as alterações até ao ponto de salvaguarda especificado.

    ROLLBACK TO SAVEPOINT my_savepoint;
    
  • RELEASE SAVEPOINT: Remove o ponto de salvaguarda.

    RELEASE SAVEPOINT my_savepoint;
    

Exemplo de sequência de comandos:

BEGIN; -- iniciar transação

INSERT INTO users (name) VALUES ('Alice'); -- executar operação

SAVEPOINT before_update; -- definir ponto de salvaguarda

UPDATE products SET price = price * 1.1 WHERE id = 1; -- executar outra operação

-- Se algo correr mal com a atualização, pode regressar ao ponto de salvaguarda
-- ROLLBACK TO SAVEPOINT before_update;

-- Se tudo correr bem, confirmar as alterações
COMMIT; -- terminar a transação e guardar as alterações

-- Se precisar cancelar toda a transação após BEGIN
-- ROLLBACK;

Compreender estes comandos é fundamental para garantir a integridade dos dados em aplicações que trabalham com bases de dados relacionais.