MySQL MariaDB

Transactions MySQL

Transactions MySQL
Une transaction est un ensemble simultané de fonctions pour manipuler des ensembles de données et est exécutée comme s'il s'agissait d'une seule entité de travail. En d'autres termes, une transaction ne peut jamais être accomplie tant que chaque processus particulier n'est pas réussi à l'intérieur de l'unité. L'ensemble du processus s'effondrera si une transaction à l'intérieur du processus se bloque. Plusieurs requêtes SQL sont associées à une unité et toutes seront exécutées ensemble dans le cadre de sa transaction. Chaque fois qu'une transaction incorpore plusieurs mises à jour à une base de données et que la transaction est validée, toutes les modifications fonctionnent ou toutes les mises à jour sont inversées chaque fois que l'opération est annulée.

Propriétés de la transaction

Les transactions, souvent connues sous le terme ACIDE, ont quatre propriétés générales principales.

Les transactions MySQL fonctionnent :

Dans MySQL, les deux termes, Commit et Rollback sont principalement utilisés uniquement pour les transactions MySQL. Les transactions commencent uniquement par la déclaration BEGIN WORK et se terminent soit par une déclaration COMMIT, soit par une déclaration ROLLBACK. Les instructions SQL constituent la majorité de la transaction parmi les instructions de démarrage et d'arrêt. Une telle série d'événements est indépendante du langage de programmation spécifique utilisé. Vous créerez un chemin approprié dans la langue que vous utilisez pour créer l'application. Les instructions SQL ci-dessous peuvent être implémentées à l'aide de la fonction mysql query().

Exemple 01 : Mode AutoCommit activé :

MySQL fonctionne avec la phase Autocommit autorisée par défaut. Cela garantit que MySQL enregistre les modifications sur le disque pour le créer perpétuellement tant que nous exécutons une requête qui ajuste (modifie) une table. Il n'est pas nécessaire de revenir en arrière. Essayons avec AUTOCOMMIT en mode. Ouvrez votre shell de ligne de commande MySQL et tapez votre mot de passe pour commencer.

Prenons l'exemple d'une table 'book' qui a été créée dans une base de données 'data'. Pour le moment, nous n'avons pas encore effectué de requête dessus.

>> SÉLECTIONNER * À PARTIR des données.livre;

Étape 2: Ce processus consiste à mettre à jour la table 'book'. Mettons à jour la valeur de la colonne 'Auteur' où le 'Nom' d'un livre est 'Home'. Vous pouvez voir que les modifications ont été apportées avec succès.

>> METTRE À JOUR les données.livre SET Auteur = 'Cristian Steward' WHERE Nom = 'Maison';

En ayant un aperçu de la table mise à jour, nous avons une valeur modifiée de l'auteur où 'nom' est 'Home'.

>> SÉLECTIONNER * À PARTIR des données.livre;

Utilisons la commande ROLLBACK pour annuler les modifications en ajoutant simplement la requête ci-dessous. Vous pouvez voir que la requête ROLLBACK ne fonctionne pas ici car elle montre que "0 lignes affectées".

>> RETOURNER ;

Vous pouvez même voir le tableau aussi. La table n'a reçu aucun changement après l'exécution de l'instruction ROLLBACK jusqu'à présent. Cela signifie que le ROLLBACK ne fonctionne pas lorsque nous avons AUTOCOMMIT activé par défaut.

>> SÉLECTIONNER * À PARTIR des données.livre;

Exemple 02 : Mode AutoCommit désactivé :

Pour annuler les modifications apportées, essayons avec le mode AUTOCOMMIT désactivé. En utilisant le même exemple de table 'book', nous allons y apporter quelques modifications. Nous utiliserons la déclaration START TRANSACTION pour désactiver sa phase d'auto-commit ou tapez simplement la commande ci-dessous pour désactiver AUTOCOMMIT.

>> SET AUTOCOMMIT = 0;

Disons que nous avons la même table 'book' dans notre base de données et que nous devons y apporter des modifications. Puis rétablissez à nouveau ces modifications aux anciennes.

>> SÉLECTIONNER * À PARTIR des données.livre;

Si vous n'avez pas désactivé le mode AUTOCOMMIT, commencez par une requête START TRANSACTION dans le shell de ligne de commande comme ci-dessous.

>> COMMENCER LA TRANSACTION ;

Nous mettrons à jour la même table à l'aide de la commande UPDATE en définissant l''Auteur' comme 'Aliana' où le 'Nom' d'un livre est 'Rêve'. Faites-le en utilisant la commande ci-dessous. Vous verrez que les changements seront effectués avec succès et efficacement.

>> METTRE À JOUR les données.livre SET Auto = 'Aliana' WHERE Nom = 'Rêve';

Vérifions si la requête ci-dessus a parfaitement fonctionné et a apporté des modifications à la table ou non. Vous pouvez vérifier la table mise à jour en utilisant la commande SELECT ci-dessous comme toujours.

>> SÉLECTIONNER * À PARTIR des données.livre;

Vous pouvez voir que la requête a très bien fonctionné, comme indiqué ci-dessous.

Maintenant, c'est au tour de la commande ROLLBACK d'accomplir sa fonction. Essayez la commande ROLLBACK dans votre ligne de commande pour annuler la mise à jour récente de la table.

>> RETOURNER ;

Vérifions si la requête ROLLBACK a été exécutée comme elle devrait fonctionner ou non. Pour cela, vous devez vérifier à nouveau la table 'book' en utilisant la commande 'SELECT' comme toujours.

>> SÉLECTIONNER * À PARTIR des données.livre;

Vous pouvez voir à partir de la sortie ci-dessous que ROLLBACK a finalement fonctionné. Il a annulé les modifications apportées par la requête UPDATE sur cette table.

Conclusion:

C'est tout pour les transactions MySQL. J'espère que ce guide vous aidera à effectuer facilement des transactions MySQL.

Installez le dernier émulateur Dolphin pour Gamecube et Wii sur Linux
L'émulateur Dolphin vous permet de jouer aux jeux Gamecube et Wii de votre choix sur des ordinateurs personnels Linux (PC). Étant un émulateur de jeu...
Comment utiliser le moteur de triche GameConqueror sous Linux
L'article couvre un guide sur l'utilisation du moteur de triche GameConqueror sous Linux. De nombreux utilisateurs qui jouent à des jeux sur Windows u...
Meilleurs émulateurs de console de jeu pour Linux
Cet article répertorie les logiciels d'émulation de console de jeu populaires disponibles pour Linux. L'émulation est une couche de compatibilité logi...