Erick Reis • 02 dez 2021 • SQL
Quando trabalhamos com banco de dados todo o cuidado é pouco, afinal de contas, estamos lidando com informações que são de extrema importância e que podem conter até mesmo milhares de linhas.
No artigo de hoje iremos conhecer duas funções que podem nos privar de tragédias que podem acontecer quando trabalhamos no banco de dados.
No exemplo de hoje irei utilizar um banco de dados com poucas linhas para exemplificarmos de uma maneira mais fácil de entender:
Quando vamos trabalhar com modificações no banco de dados (Sejam elas modificações de deleção ou atualização de dados) para garantir a integridade do banco de dados nós podemos utilizar duas funções de transação chamadas Commit e Rollback
Commit:
Se uma transação for concluída com êxito, o banco de dados será alterado permanentemente, essa operação é chamada de COMMIT.
Rollback:
E como o Commit é quando a operação é concluída com êxito, quando a mesma da errada é aí que entra a operação rollback.
Quando houver falha em qualquer uma das operações que fazer parte da transação, o banco de dados irá retornar ao estado anterior ao início da transação; chamamos a essa operação de rollback
Quando utilizamos essas funções Commit e rollback nós estamos trabalhando com transações, e as transações possuem algumas características que nós vamos ver logo abaixo para entender melhor o conceito de transação no banco de dados.
Para iniciar essas transações na linguagem SQL primeiro precisamos declarar através do comando Begin Transaction. Essa declaração irá fazer com que o banco de dados entenda que tudo a partir dali irá ocorrer como uma transação.
E ao final dessa transação é quando declaramos que a operação deu certo através da função Commit ou rollback para caso tenha dado algum erro ou tenha acontecido algo que não queríamos no banco de dados.
Agora que vimos um pouco como funcionam essas declarações, vamos colocar em prática para entendermos melhor:
Utilizando o banco de dados que criei acima, eu irei inicializar uma transação e em seguida irei apagar todo o banco de dados como se tivesse acontecido um acidente:
/* Iniciando a transação */
Begin TRANSACTION;
DELETE FROM FUNCIONARIOS;
SELECT * FROM FUNCIONARIOS;
Notem que todo o meu banco de dados foi excluído, então o que eu vou fazer é pedir para que o banco de dados desfaça toda essa transação através da declaração Rollback:
Ao declarar a função Rollback, o banco de dados retorna o banco para o momento inicial antes da transação ocorrer.
Agora digamos que eu queira apagar todos os dados do meu banco de dados e confirmar a transação:
Iniciei novamente uma transação e deletei todo o conteúdo do meu banco de dados.
Agora irei confirmar a transação e pedir para ele me mostrar os dados da tabela novamente:
Confirmei a transação e logo ele salvou todo o processo de execução que aconteceu no momento da transação.
Então só para resumirmos o conteúdo do artigo de hoje, a declaração Commit ela executa e salva o processo de transação que foi realizado, enquanto a função Rollback desfaz a transação inteira até o momento inicial onde iniciamos a transação com a declaração Begin Transaction.
E com esses conhecimentos que vimos hoje nós podemos evitar muitos acidentes que ocorrem com frequência em muitas empresas, então sempre antes de realizar grandes mudanças no banco de dados inicie uma transação que eu tenho certeza que essa boa pratica irá ajuda-lo a prevenir problemas futuros no seu banco de dados.