MariaDB - Transactions

Les transactions sont des opérations de groupe séquentielles. Ils fonctionnent comme une seule unité et ne se terminent que lorsque toutes les opérations du groupe s'exécutent avec succès. Un seul échec dans le groupe entraîne l'échec de la transaction entière et la fait n'avoir aucun impact sur la base de données.

Les transactions sont conformes à ACID (atomicité, cohérence, isolation et durabilité) -

  • Atomicity - Il assure le succès de toutes les opérations en annulant en cas de panne et en annulant les modifications.

  • Consistency - Il garantit que la base de données applique les modifications à une transaction réussie.

  • Isolation - Il permet un fonctionnement indépendant des transactions des transactions.

  • Durability - Il assure la persistance d'une transaction réussie en cas de panne du système.

En tête d'une instruction de transaction se trouve l'instruction START TRANSACTION suivie des instructions COMMIT et ROLLBACK -

  • START TRANSACTION commence la transaction.

  • COMMIT enregistre les modifications apportées aux données.

  • ROLLBACK met fin à la transaction, détruisant toutes les modifications.

Sur une transaction réussie, COMMIT agit. En cas d'échec, ROLLBACK agit.

Note- Certaines instructions provoquent une validation implicite et provoquent également une erreur lorsqu'elles sont utilisées dans des transactions. Des exemples de telles instructions incluent, mais sans s'y limiter, CREATE, ALTER et DROP.

Les transactions MariaDB incluent également des options telles que SAVEPOINT et LOCK TABLES. SAVEPOINT définit un point de restauration à utiliser avec ROLLBACK. LOCK TABLES permet de contrôler l'accès aux tables pendant les sessions pour éviter les modifications pendant certaines périodes.

La variable AUTOCOMMIT permet de contrôler les transactions. Un paramètre de 1 force toutes les opérations à être considérées comme des transactions réussies, et un paramètre de 0 entraîne la persistance des modifications uniquement sur une instruction COMMIT explicite.

Structure d'une transaction

La structure générale d'une instruction de transaction consiste à commencer par START TRANSACTION. L'étape suivante consiste à insérer une ou plusieurs commandes / opérations, à insérer des instructions qui vérifient les erreurs, à insérer des instructions ROLLBACK pour gérer les erreurs découvertes et enfin à insérer une instruction COMMIT pour appliquer les modifications aux opérations réussies.

Passez en revue l'exemple ci-dessous -

START TRANSACTION;
SELECT name FROM products WHERE manufacturer = 'XYZ Corp';
UPDATE spring_products SET item = name;
COMMIT;