Transações MySQL

Transações MySQL
Uma transação é uma coleção simultânea de funções para manipular conjuntos de dados e é realizada como se fosse uma única entidade de trabalho. Em outros termos, uma transação nunca pode ser realizada até que cada processo em particular seja bem -sucedido dentro da unidade. Todo o processo entrará em colapso se alguma transação dentro do processo travar. Várias consultas SQL são batidas em uma unidade, e todas elas serão executadas juntas como uma parte de sua transação. Sempre que uma transação incorpora várias atualizações para um banco de dados, e a transação é cometida, todas as modificações funcionam ou todas as atualizações são revertidas sempre que a operação é revertida.

Propriedades da transação

Transações, freqüentemente conhecidas pelo termo ÁCIDO, tem quatro principais propriedades gerais.

  • Atomicidade: Isso garante que todas as tarefas dentro da unidade de trabalho sejam concluídas com sucesso; caso contrário, apenas no ponto de falha, o processo é encerrado e os processos anteriores são restaurados em seu antigo estado.
  • Consistência: Isso significa que, após um processo suficientemente comprometido, o banco de dados atualiza o estado adequadamente.
  • Isolamento: Ajuda as transações a trabalhar entre si e individual e transparente.
  • Durabilidade: Isso garante que, no caso de uma quebra do sistema, o resultado ou a conseqüência de uma transação comprometida retenha.

Transações MySQL funcionando:

Dentro do MySQL, os dois termos, comprometimento e reversão são usados ​​principalmente para transações MySQL. As transações começam apenas com a declaração de trabalho de trabalho e finaliza por uma declaração de compromisso ou uma declaração de reversão. As instruções SQL compreendem a maioria da transação entre as declarações iniciais e paradas. Essa série de eventos é independente da linguagem de programação específica utilizada. Você fará um caminho adequado em qualquer idioma que estiver usando para criar o aplicativo. As instruções SQL abaixo podem ser implementadas usando o recurso MySQL Query ().

  • COMEÇAR: Inicie seu processo ou transação, fornecendo a instrução BEGIN SQL.
  • Adicionar comando SQL: uma ou mais declarações SQL, como selecionar, inserir, atualizar e excluir, respectivamente. Confirme mesmo que não haja erro e tudo está em conformidade com suas expectativas.
  • COMPROMETER-SE: A instrução de confirmação deve ser imposta após a realização de uma transação bem -sucedida, de modo que as modificações em todas as tabelas associadas possam ter efeito total.
  • Reversão: Se ocorrer um mau funcionamento, é realmente apropriado enviar uma instrução de reversão para reverter cada tabela especificada na transação em direção à sua condição anterior.
  • AutoCommit: Por padrão, o MySQL aplica as modificações permanentemente a um banco de dados. Se o AutoCommit for definido como 1 (padrão), então cada consulta SQL (se está ou não dentro de uma transação) é considerada uma transação preenchida e comprometida até que seja concluída por padrão. Para evitar comprometimento automático, defina autocomita para 0.

Exemplo 01: Modo Autocomit on:

O MySQL opera com a fase autocomércia permitida por meio de padrão. Ele garante que o MySQL salve as alterações no disco para criá -lo perpetuamente enquanto executamos uma consulta que ajusta (altera) uma tabela. Não é necessário voltar a jogada. Vamos tentar com o modo autocomit no modo. Abra seu shell da linha de comando MySQL e digite sua senha para começar.

Dê um exemplo de uma tabela 'livro' que foi criada em um banco de dados 'dados'. No momento, ainda não realizamos nenhuma consulta nela.

>> Selecione * FROM dados.livro;

Passo 2: Este processo é para atualizar a tabela 'livro'. Vamos atualizar o valor da coluna 'autor', onde o 'nome' de um livro é 'Home'. Você pode ver que as mudanças foram feitas com sucesso.

>> Atualizar dados.Conjunto de livros Autor = 'Cristian Steward' Where Name = 'Home';

Ao vislumbrar a tabela atualizada, temos um valor modificado do autor onde 'nome' é 'casa'.

>> Selecione * FROM dados.livro;

Vamos usar o comando revertback para reverter as alterações simplesmente adicionando a consulta abaixo. Você pode ver que a consulta de reversão não funciona aqui, pois mostra que '0 linhas afetadas'.

>> reversão;

Você pode até ver a mesa também. A tabela não tem mudanças após a execução da declaração de reversão até agora. Isso significa que a reversão não funciona quando temos autocomit por padrão.

>> Selecione * FROM dados.livro;

Exemplo 02: Modo Autocomit OFF:

Para reverter as mudanças feitas, vamos tentar com o modo de desligamento automático. Usando o mesmo exemplo de tabela 'livro', realizaremos algumas mudanças nela. Usaremos a declaração de transação inicial para desativar sua fase de compromisso automático ou simplesmente digitar o comando abaixo para definir autocomit.

>> defina autocommit = 0;

Digamos que temos a mesma tabela 'livro' em nosso banco de dados, e temos que fazer alterações nisso. Em seguida, reverte essas mudanças para as antigas novamente.

>> Selecione * FROM dados.livro;

Se você não desativou o modo Autocomit, comece com uma consulta de transação inicial no shell da linha de comando como abaixo.

>> Iniciar a transação;

Atualizaremos a mesma tabela usando o comando de atualização definindo o 'autor' como 'Aliana', onde o 'nome' de um livro é 'sonho'. Faça isso usando o comando abaixo. Você verá que as mudanças serão feitas com sucesso e eficácia.

>> Atualizar dados.Conjunto de livros Auto = 'Aliana' onde o nome = 'sonho';

Vamos verificar se a consulta acima funcionou perfeitamente e fez alterações na mesa ou não. Você pode verificar a tabela atualizada usando o comando selecione abaixo como sempre.

>> Selecione * FROM dados.livro;

Você pode ver que a consulta funcionou muito bem, como mostrado abaixo.

Agora, é uma vez do comando revertback para desempenhar sua função. Experimente o comando revertback em sua linha de comando para reverter a recente atualização da tabela.

>> reversão;

Vamos verificar se a consulta de reversão foi trabalhada, pois deve funcionar ou não. Para isso, você deve verificar a tabela 'livro' novamente usando o comando 'select' como sempre.

>> Selecione * FROM dados.livro;

Você pode ver na saída abaixo que a reversão finalmente funcionou. Ele reverteu as alterações feitas pela consulta de atualização nesta tabela.

Conclusão:

Isso é tudo para transações MySQL. Espero que este guia o ajude a realizar transações MySQL convenientemente.