Transactions sqlite

Transactions sqlite
«Les transactions sont des blocs ou des séquences de travail logiques logiquement qui peuvent être effectués manuellement ou mécaniquement par un SGBDS. Si vous créez, modifiez ou supprimez les données du tableau, vous effectuez des transactions sur le tableau. Le contrôle des transactions est essentiel pour maintenir l'intégrité des données et traiter les problèmes de base de données.

Dans SQLite, une transaction est un groupe de commandes T-SQL qui s'exécutent comme une commande T-SQL unique. Si une erreur se produit lors de l'exécution de ces commandes SQLITE, la transaction sera annulée dans son intégralité. En général, SQLite est en mode automatique, ce qui signifie qu'il crée automatiquement une transaction avec chaque commande, le traite et commet les modifications de la base de données.

Dans cet article, nous montrerons comment implémenter la transaction SQLite pour assurer l'intégrité et la fiabilité des données."

Propriétés de la transaction SQLite

SQLite est une base de données transactionnelle, ce qui signifie que toutes les mises à jour et les recherches sont atomiques, cohérentes, isolées et durables (acide). Les quatre caractéristiques standard énoncées ci-dessous, qui sont généralement abrégées en acide, sont présentes dans les transactions.

Atomicité: Une seule étape du processus doit être effectuée par une transaction atomique. Il indique qu'une modification ne peut pas être divisée en composants plus petits. Soit la transaction complète est exécutée ou non lorsqu'une transaction est en mode engagement.

Cohérence: Les transactions doivent garantir que la base de données est passée d'un état légitime à l'autre. La base de données est incohérente lorsqu'une transaction initie et exécute une commande pour mettre à jour les données. Cependant, la base de données doit rester cohérente lorsque la validation et le retrait sont effectués sur les transactions.

Isolement: La transaction en attente de la session doit être séparée des autres sessions. Lorsqu'une session initie une transaction et utilise la commande d'insert ou de mise à jour pour modifier les données, les modifications ne sont accessibles qu'à l'opération actuelle et non à d'autres. Les modifications apportées par d'autres utilisateurs après le début de la transaction, en revanche, ne devraient jamais être évidentes pour l'utilisateur actuel.

Durabilité: Si une transaction est correctement engagée, les modifications de la base de données doivent être permanentes en cas de panne de courant ou d'un accident de programme. La mise à jour ne doit pas persister si le programme se termine avant la fin de la transaction.

Comment effectuer des transactions dans SQLite?

Supposons que nous souhaitions réguler ces transactions pour conserver la cohérence des données et gérer les défaillances de la base de données. Nous pouvons arrêter le mode automatique et initier les transactions explicitement en fonction de nos besoins en utilisant les instructions suivantes.

  • COMMENCER: C'est le point où la transaction est démarrée.
  • COMMETTRE: Avec cette terminologie dans SQLite, nous engagerons la transaction, ce qui signifie qu'elle enregistrera toutes les modifications de la base de données.
  • RETOUR EN ARRIERE: La transaction dans son ensemble sera inversée.

Notez que seuls les opérations DML insertent, mettent à jour et suppriment utilisent des instructions de contrôle transactionnel. Ils ne peuvent pas être utilisés pour extraire des tables, car la base de données commet rapidement ces opérations.

Création de tables SQLite pour effectuer des transactions

Pour effectuer des transactions, nous devons d'abord créer une table. Dans la figure, vous pouvez remarquer que nous avons créé un tableau avec le nom «Person_Accounts."La table est spécifiée avec les quatre colonnes en tant que Person_id, Person_name, Account_number et le compte_balance avec leurs types de données.

Créer une table Person_Accounts (
Person_id int clé primaire ,
Person_name Char (10) ,
account_number int ,
Float de compte
));

Ici, nous avons un enregistrement inséré avec la commande sqlite insert.

Insérer dans Person_Accouts Valeurs (1, 'Ayat', 171636460, 5000);
Insérer dans Person_Accouts Values ​​(2, «Muneeb», 673201984, 8000);
Insérer dans Person_Accouts Values ​​(3, 'Wahaj', 112603502, 4000);
Insérer dans Person_Accouts Values ​​(4, «Maya», 501738449, 7500);

Le tableau est visible au format de la table comme suit:

Exemple 1: Effectuez la transaction avec la commande begin dans sqlite

Begin Transaction, ou la commande begin, peut être utilisée pour démarrer les transactions. Cependant, si la base de données est terminée ou si une erreur se produit, une transaction va retourner.

Initialement, nous avons inclus une terminologie de début avec le terme de transaction. Ensuite, nous avons la commande de mise à jour, qui fonctionne sur la colonne Account_Balance où Person_id est égal à "2" avec la personne_id égale à "4". Comme nous avons donné une instruction de validation, la transaction se termine ici.

Commencer la transaction;
Mettre à jour Person_Accouts
Set account_balance = account_balance - 1000
Où person_id = 2;
Mettre à jour Person_Accouts
Set account_balance = account_balance + 500
Où person_id = 4;
COMMETTRE;

La traduction est effectuée avec succès sur la table «Person_accouts» et le champ «Account_Balance» est mis à jour sur la personne spécifiée_id.

Exemple 2: Effectuer la transaction sur la commande englob dans sqlite

La commande commit est une commande transactionnelle qui enregistre les modifications de la base de données déclenchée par une transaction. La commande commit préserve toutes les transactions de base de données depuis l'instruction de validation ou de recul précédente.

Dans l'exemple suivant, nous avons le premier début de la transaction avec le terme début de transaction. Après cela, nous avons la commande INSERT, qui insère un nouvel enregistrement dans le tableau «Person_Accounts."Nous avons finalement donné une commande de validation, qui met fin à la transaction ici et enregistre le changement dans le tableau donné.

Commencer la transaction;
Insérer dans Person_Accounts (Person_id, Person_name, Account_number, Account_Balance)
Valeurs (3, «Wahaj», 112603502, 4000);
COMMETTRE;

La vue du tableau montre le nouvel enregistrement dans le tableau suivant.

Exemple 3: effectuez la transaction sur la commande Rollback dans SQLite

Rollback est une commande transactionnelle utilisée pour détendre les transactions qui n'ont pas encore été engagées dans la base de données.

Ici, nous avons effectué l'opération de suppression sur la table «Persons_Accouts», où elle correspondait à la condition sur le champ de compte donné_. Après cela, nous avons donné des instructions de recul qui finiront également à la transaction ici, mais pas à enregistrer les modifications que nous avons effectuées sur la table.

Commencer la transaction;
Supprimer de Person_Accounts où account_number = 112603502;
Supprimer de Person_Accouts où account_number = 171636460;
RETOUR EN ARRIERE;

Après avoir effectué l'opération de recul, le tableau a les mêmes valeurs et champs existants dans le tableau qu'avant.

Conclusion

Après avoir lu cet article, nous espérons que vous avez une compréhension claire des transactions SQLite. Nous avons parlé des propriétés de transaction de SQLite et du contrôle des transactions. Il a également mis en œuvre plusieurs exemples SQLite décrivant le comportement des transactions avec les fonctionnalités de validation et de recul. C'est tout ce qu'il y a à savoir sur les transactions SQLite, y compris les informations de transaction de validation et de retournement.