Tutoriel classi...login
Tutoriel classique SQLite
auteur:php.cn  temps de mise à jour:2022-04-13 17:05:02

Transactions SQLite


La transaction est une unité de travail effectuée sur la base de données. Une transaction est une unité ou une séquence de travail effectuée dans une séquence logique. Elle peut être complétée manuellement par l'utilisateur ou automatiquement par un programme de base de données.

La transaction fait référence à une ou plusieurs extensions qui modifient la base de données. Par exemple, si vous créez un enregistrement, mettez à jour un enregistrement ou supprimez un enregistrement d'une table, vous effectuez une transaction sur cette table. Il est important de contrôler les transactions pour garantir l'intégrité des données et gérer les erreurs de base de données.

En fait, vous pouvez combiner de nombreuses requêtes SQLite dans un groupe et les exécuter toutes ensemble dans le cadre d'une transaction.

Attributs des transactions

Les transactions ont les quatre attributs standards suivants, généralement ACID basés sur l'acronyme :

  • Atomicité) : Assurez-vous que toutes les opérations au sein de l'unité de travail se terminent avec succès, sinon la transaction sera terminée en cas d'échec et les opérations précédentes seront rétablies à l'état précédent.

  • Cohérence : Garantit que la base de données change d'état correctement lors des transactions validées avec succès.

  • Isolement : Rendre les opérations de transaction indépendantes et transparentes.

  • Durabilité : Garantit que les résultats ou les effets des transactions validées persistent en cas de panne du système.

Contrôle des transactions

Utilisez les commandes suivantes pour contrôler les transactions :

  • BEGIN TRANSACTION : Démarrer traitement des transactions.

  • COMMIT : enregistrez les modifications, ou vous pouvez utiliser la commande TERMINER LA TRANSACTION.

  • ROLLBACK : annulez les modifications.

Les commandes de contrôle des transactions ne sont utilisées 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 d'une table car ces opérations sont automatiquement validées dans la base de données.

Commande BEGIN TRANSACTION

La transaction peut être démarrée à l'aide de la commande BEGIN TRANSACTION ou d'une simple commande BEGIN. De telles transactions se poursuivent généralement jusqu'à ce que la prochaine commande COMMIT ou ROLLBACK soit rencontrée. Cependant, la transaction sera également annulée lorsque la base de données est fermée ou qu'une erreur se produit. Voici la syntaxe simple pour démarrer une transaction :

BEGIN;

or 

BEGIN TRANSACTION;

Command COMMIT La commande

COMMIT est une commande de transaction utilisée pour enregistrer les modifications appelées par une transaction dans la base de données.

La commande COMMIT enregistre toutes les transactions depuis la dernière commande COMMIT ou ROLLBACK dans la base de données. La syntaxe de la commande

COMMIT est la suivante :

COMMIT;

or

END TRANSACTION;

Commande ROLLBACK La commande

ROLLBACK est une commande de transaction utilisée pour annuler une transaction qui n'a pas été enregistrée dans le base de données.

La commande ROLLBACK ne peut être utilisée que pour annuler des transactions depuis que la dernière commande COMMIT ou ROLLBACK a été émise.

La syntaxe de la commande ROLLBACK est la suivante :

ROLLBACK;

Exemple

Supposons que la table COMPANY contienne 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, laissez-nous démarrer une transaction et commencer à partir de L'enregistrement avec age = 25 est supprimé de la table Enfin, nous utilisons la commande ROLLBACK pour annuler toutes les modifications.

sqlite> BEGIN;
sqlite> DELETE FROM COMPANY WHERE AGE = 25;
sqlite> ROLLBACK;

Vérifiez la table COMPANY, il y a toujours 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 autre transaction et supprimons les enregistrements avec age = 25 de la table, et enfin nous utilisons le Commande COMMIT pour valider toutes les modifications.

sqlite> BEGIN;
sqlite> DELETE FROM COMPANY WHERE AGE = 25;
sqlite> COMMIT;

Vérifiez la table COMPANY, il y a 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

Site Web PHP chinois