Transações SQLITE

Transações SQLITE
“As transações são blocos ou sequências de trabalho organizadas logicamente que podem ser feitas manualmente ou mecanicamente por um DBMS. Se você criar, alterar ou remover dados da tabela, estará realizando transações na tabela. Controlar transações é fundamental para manter a integridade dos dados e lidar com problemas de banco de dados.

No sqlite, uma transação é um grupo de comandos T-SQL que executam como um comando t-sql exclusivo. Se ocorrer um erro ao executar esses comandos sqlite, a transação será revertida na sua totalidade. Em geral, o SQLite está no modo de compromisso automático, o que significa que cria automaticamente uma transação com cada comando, o processa e comete as alterações no banco de dados.

Neste artigo, demonstraremos como implementar a transação SQLite para garantir a integridade e a confiabilidade dos dados.”

Propriedades da transação SQLITE

O SQLite é um banco de dados transacional, o que significa que todas as atualizações e pesquisas são atômicas, consistentes, isoladas e duradouras (ácido). Os quatro recursos padrão declarados abaixo, que geralmente são abreviados como ácido, estão presentes nas transações.

Atomicidade: Uma única etapa do processo deve ser concluída por uma transação atômica. Ele indica que uma modificação não pode ser dividida em componentes menores. Ou a transação completa é executada ou não quando uma transação está no modo de confirmação.

Consistência: As transações devem garantir que o banco de dados seja alterado de um estado legítimo para o próximo. O banco de dados fica inconsistente quando uma transação inicia e executa um comando para atualizar dados. No entanto, o banco de dados deve permanecer consistente quando a confirmação e a reversão são realizadas nas transações.

Isolamento: A transação pendente da sessão deve ser segregada de outras sessões. Quando uma sessão inicia uma transação e usa o comando inserir ou atualizar para modificar os dados, as modificações são acessíveis apenas à operação atual e não a outras pessoas. As mudanças feitas por outros usuários após o início da transação, por outro lado, nunca devem ser aparentes para o usuário atual.

Durabilidade: Se uma transação for devidamente comprometida, as mudanças no banco de dados devem ser permanentes no caso de uma queda de energia ou um acidente do programa. A atualização não deve persistir se o programa terminar primeiro antes que a transação seja comprometida.

Como realizar transações em sqlite?

Suponha que desejemos regular essas transações para reter a consistência dos dados e lidar com falhas no banco de dados. Podemos interromper o modo de compromisso automático e iniciar explicitamente as transações com base em nossas necessidades usando as seguintes instruções.

  • COMEÇAR: Este é o ponto em que a transação é iniciada.
  • COMPROMETER-SE: Com essa terminologia no SQLite, cometeremos a transação, o que significa que ele salvará todas as modificações no banco de dados.
  • Reversão: A transação como um todo será revertida.

Observe que apenas as operações da DML inserem, atualizam e excluem as instruções de controle transacional. Eles não podem ser usados ​​para extrair tabelas, pois o banco de dados comete prontamente essas operações.

Criação de tabelas SQLite para realizar transações

Para realizar transações, primeiro, temos que criar uma tabela. Na figura, você pode notar que criamos uma tabela com o nome “Person_Accounts.”A tabela é especificada com as quatro colunas como Person_Id, PERSON_NAME, Account_Number e o Account_Balance com seus tipos de dados.

Crie Table Person_Accounts (
PERSON_ID INT CHAVE PRIMÁRIO ,
pessoa_name char (10) ,
conta_number int ,
Bloat da conta
);

Aqui, temos um recorde inserido com o comando sqlite insert.

Inserir em valores de pessoa_accounts (1, 'ayat', 171636460, 5000);
Inserir em valores de pessoa_accounts (2, 'MuneEb', 673201984, 8000);
Inserir em valores de pessoa_accounts (3, 'wahaj', 112603502, 4000);
Inserir valores de pessoa_accounts (4, 'maya', 501738449, 7500);

A tabela é visível no formato da tabela da seguinte forma:

Exemplo 1: Execute a transação com o comando BEGN EM ​​SQLITE

BEGY TRANSACTION, ou o comando BEGIN, pode ser usado para iniciar transações. No entanto, se o banco de dados for encerrado ou ocorrer um erro, uma transação irá reverter.

Inicialmente, incluímos uma terminologia de início com o termo de transação. Em seguida, temos o comando de atualização, que está operando na coluna da conta_balance, onde PERSON_ID é igual a "2" junto com a pessoa igual a "4". Como demos uma instrução de confirmação, a transação termina aqui.

Iniciar a transação;
Atualizar PERSON_ACCOUNTS
Definir conta_balance = account_balance - 1000
Onde pessoa_id = 2;
Atualizar PERSON_ACCOUNTS
Definir conta_balance = account_balance + 500
Onde pessoa_id = 4;
COMPROMETER-SE;

A tradução é realizada com sucesso na tabela "Person_Accounts" e o campo "Account_Balance" é atualizado no PERSON_ID especificado.

Exemplo 2: Execute a transação no comando commit em sqlite

O comando Commit é um comando transacional que salva alterações no banco de dados acionado por uma transação. O comando commit preserva todas as transações de banco de dados desde a instrução anterior de confirmação ou reversão.

No exemplo seguinte, temos o primeiro início da transação com o termo iniciar transação. Depois disso, temos o comando Insert, que insere um novo registro na tabela “Person_Accounts.”Damos um comando de commit no final, que encerra a transação aqui e salva a mudança na tabela dada.

Iniciar a transação;
Inserir em PERSON_ACCOUNTS (PERSON_ID, PERSON_NAME, Account_Number, Account_Balance)
Valores (3, 'wahaj', 112603502, 4000);
COMPROMETER-SE;

A visão da tabela mostra o novo registro na tabela a seguir.

Exemplo 3: Execute a transação no comando rollback no sqlite

Rollback é um comando transacional usado para relaxar as transações que ainda não foram comprometidas com o banco de dados.

Aqui, realizamos a operação de exclusão na tabela “PESSONS_ACCOUNTS”, onde correspondia à condição no campo de conta parado_number. Depois disso, damos instruções de reversão que também encerrarão a transação aqui, mas não salvarão as alterações que realizamos na tabela.

Iniciar a transação;
Excluir de Person_Accounts onde conta_number = 112603502;
Excluir de Person_Accounts onde conta_number = 171636460;
Reversão;

Depois de executar a operação de reversão, a tabela tem os mesmos valores e campos existentes na tabela como antes.

Conclusão

Depois de ler este artigo, esperamos que você tenha uma compreensão clara das transações SQLite. Conversamos sobre as propriedades da transação da SQLite e o controle de transações. Também implementou vários exemplos de sqlite que descrevem o comportamento da transação com as funcionalidades de confirmação e reversão. Isso é tudo o que há para saber sobre transações SQLite, incluindo informações de transação de comprometimento e reversão.