English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Une transaction est une unité de travail pour l'exécution de la base de données. Une transaction est un ensemble ou une séquence d'opérations achevées en ordre logique, qu'elles soient terminées manuellement par l'utilisateur ou automatiquement par un programme de base de données.
Une transaction est le processus de propagation de changements dans la base de données. Par exemple, si vous devez créer, mettre à jour ou supprimer des enregistrements dans une table, vous exécuterez une transaction sur cette table. Il est important de contrôler les transactions pour assurer l'intégrité des données et traiter les erreurs de base de données.
En réalité, vous composerez plusieurs requêtes SQLite en un groupe et les exécuterez ensemble comme partie d'une transaction.
Une transaction possède les quatre propriétés standard suivantes, généralement représentées par l'acronyme ACID.
Atomicité (Atomicité) :Assurez-vous que toutes les opérations à l'intérieur de l'unité de travail sont terminées avec succès, sinon, la transaction sera interrompue lors d'une panne et les opérations précédentes seront annulées et ramenées à leur état précédent.
Consistance (Consistency) :Assurez-vous que la base de données change correctement d'état sur les transactions soumises avec succès.
Isolation (Isolation) :Faire que les opérations transactionnelles soient indépendantes et transparentes.
Persistance (Durabilité) :Assurez-vous que les résultats ou les effets des transactions soumises sont toujours présents en cas de défaillance du système.
Voici les commandes suivantes utilisées pour contrôler les transactions :
BEGIN TRANSACTION −Commencer une transaction.
COMMIT−Pour enregistrer les modifications, vous pouvez également utiliserEND TRANSACTIONcommande.
ROLLBACK −Retourner les modifications.
Les commandes de contrôle des transactions ne s'utilisent qu'avec les commandes DML INSERT, UPDATE et DELETE. Ils ne peuvent pas être utilisés lors de la création ou de la suppression de tables, car ces opérations sont automatiquement soumises dans la base de données.
Vous pouvez utiliser BEGIN TRANSACTION ou simplement BEGIN pour démarrer une transaction. Ce type de transaction se termine généralement par une commande COMMIT ou ROLLBACK suivante. Cependant, si la base de données est fermée ou qu'une erreur se produit, la transaction est également annulée. Voici la syntaxe simple pour démarrer une transaction.
BEGIN; ou BEGIN TRANSACTION;
La commande COMMIT est une commande transactionnelle utilisée pour enregistrer les modifications apportées par les appels de transaction dans la base de données.
Depuis la dernière commande COMMIT ou ROLLBACK, la commande COMMIT enregistre toutes les transactions dans la base de données.
Voici la syntaxe de la commande COMMIT.
COMMIT; ou END TRANSACTION;
La commande ROLLBACK est une commande transactionnelle utilisée pour annuler les transactions non enregistrées dans la base de données.
Depuis la dernière commande COMMIT ou ROLLBACK, la commande ROLLBACK ne peut être utilisée que pour annuler les transactions.
Voici la syntaxe de la commande ROLLBACK.
ROLLBACK;
Exemple en ligne
la table COMPANY avec les enregistrements suivants.
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
Maintenant, commençons une transaction et supprimons les enregistrements à partir de age = 25supprimer les enregistrements de la table. Ensuite, utilisez la commande ROLLBACK pour annuler toutes les modifications.
sqlite> BEGIN; sqlite> DELETE FROM COMPANY WHERE AGE = 25; sqlite> ROLLBACK;
Maintenant, si vous vérifiez la table COMPANY, elle conserve encore les enregistrements suivants-
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
commençons une autre transaction et supprimons les enregistrements à partir de AGE = 25supprimer les enregistrements de la table, puis nous utilisons la commande COMMIT pour soumettre toutes les modifications.
sqlite> BEGIN; sqlite> DELETE FROM COMPANY WHERE AGE = 25; sqlite> COMMIT;
Si vous vérifiez maintenant que la table COMPANY a toujours les enregistrements suivants-
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 3 Teddy 23 Norway 20000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0