Transações No MySQL
Transações No MySQL
MySQL
De que se trata o artigo
Resumo DevMan
Existem situações quando é vital a ordem em que as consultas são executadas, e que
todos os comandos de query sejam consultados em grupo ou então que nenhum seja
efetivado. Temos neste contexto a importância do conceito de transação. Neste
contexto, este artigo descreve os conceitos de transações em banco de dados utilizando
o MySQL como referência.
Ambas as queries devem ser executadas ou então nenhuma delas. Não podemos ter o
dinheiro sendo transferido da conta de uma pessoa, e então “desaparece” se por alguma
razão a segunda query falha. Ambas as queries formam uma transação. Uma transação é
simplesmente um número de queries individuais que são agrupadas e devem ser
executadas juntas.
• Atomicidade: Um átomo é dito como a menor particular possível, ou algo que não
pode ser dividido. Atomicidade aplica este princípio para transações de banco de dados.
As queries que compõem uma transação devem ser todas elas executadas ou nenhum
delas deve ser executada (como o exemplo da Listagem 1).
• Isolamento: simples, os dados que estão sendo usados por uma transação não podem
ser usados por qualquer outra transação até que a primeira transação seja completada.
No exemplo da Listagem 2, temos inicialmente um saldo de conta com R$ 900,00.
Existe um único depósito de R$ 100,00 e um saque de R$100,00, então o saldo da conta
ao final deve permanecer o mesmo. No entanto, percebe-se que após sua execução o
saldo fica em R$ 800,00, de forma que perdemos R$ 100,00. Essas 2 transações
deveriam ter sido isoladas, e o resultado seria fornecido para a Conexão 2 apenas
quando a transação da Conexão 1 fosse completada.
• Durabilidade: uma vez que uma transação for completada, seu efeito deve
permanecer, e não ser reversível.
Transações em InnoDB
Transações são escritas entre declarações BEGINe COMMIT. Vamos criar uma tabela
de exemplo do tipo InnoDB na Listagem 3 ...