introduction
Lors de la gestion d’une base de données, plusieurs opérations peuvent s’exécuter et peuvent nécessiter un suivi en cas d’erreurs. Par exemple, lorsque vous souhaitez retirer de l’argent à un guichet automatique, vous entrez le montant que vous souhaitez retirer et le système vérifie la base de données pour déterminer si vous êtes autorisé à retirer le montant demandé. Si tel est le cas, le système déduit l’argent de la base de données et vous envoie un message de réussite. Cependant, s’il y a eu une panne de courant, le processus de retrait peut échouer en cours. Les transactions nous aident à suivre toutes les modifications apportées à la base de données et à les gérer plus précisément. Pour des cas comme celui-ci, les modifications peuvent être annulées ou écrasées.
Qu’est-ce qu’une opération ?
Une transaction est une unité de travail logique dans une base de données qui effectue une ou plusieurs actions. Les transactions peuvent être constituées d’une seule opération de lecture, d’écriture, de suppression ou de mise à jour ou un mélange de toutes les actions.
Propriétés des transactions
Maintenant, mettons brièvement en évidence et discutons de certaines propriétés/qualités d’une transaction.
Atomicité
L’atomicité indique que la transaction garantit que toutes les actions à l’intérieur de l’unité de travail sont terminées. Sinon, la transaction est abandonnée au point d’échec et toutes les actions précédentes sont ramenées à leur état précédent.
Cohérence
La cohérence signifie que la transaction garantit que la base de données change d’état de manière appropriée après une transaction validée avec succès.
Isolation
L’isolement signifie que toutes les transactions doivent être indépendantes les unes des autres et transparentes les unes par rapport aux autres.
Durabilité
La durabilité signifie que la transaction garantit que le résultat ou l’impact d’une transaction validée est cohérent en cas de défaillance du système.
Commandes de contrôle transactionnel
Voyons maintenant quelques commandes utilisées pour contrôler les transactions dans votre base de données.
S’ENGAGER
COMMIT
est une commande transactionnelle utilisée pour enregistrer toutes les modifications apportées précédemment par une transaction à la base de données. Cette commande enregistre toutes les modifications apportées depuis la dernière commande de validation ou d’annulation.
À titre d’exemple, nous utiliserons cet exemple users
table avec six lignes et utilisez une transaction pour en supprimer une :
DELETE
FROM users
WHERE
name="Test";
COMMIT;
Dans le code SQL ci-dessus, nous avons supprimé la dernière ligne de la table et enregistré les modifications en utilisant le COMMIT
commander.
RETOUR EN ARRIERE
ROLLBACK
est une commande de transaction utilisée pour annuler ou écraser toutes les modifications apportées précédemment à la base de données. Cette commande supprime toutes les modifications apportées depuis la dernière commande de validation ou d’annulation.
BEGIN;
DELETE
FROM users
WHERE
id = 4
AND id = 5;
ROLLBACK;
Dans le code SQL ci-dessus, nous avons supprimé la dernière ligne puis annulé la suppression avec le ROLLBACK
commander. La commande à annuler doit commencer par le BEGIN
commander.
FIXER LA TRANSACTION
Les SET TRANSACTION
La commande démarre une transaction de base de données. Cette commande peut être utilisée pour définir les paramètres de la transaction suivante. Vous pouvez, par exemple, effectuer une transaction en lecture seule ou en lecture-écriture.
SET TRANSACTION [READ ONLY |READ WRITE]
POINT DE SAUVEGARDE
Les SAVEPOINT
La commande crée un point dans la transaction où toutes les modifications antérieures sont enregistrées. Vous pouvez créer un SAVEPOINT uniquement pour les modifications après le dernier point de sauvegarde. Cette commande est utile lorsque vous souhaitez annuler les modifications à un point particulier de l’historique des transactions.
BEGIN;
DELETE FROM users
WHERE id =6;
SAVEPOINT SP1;
DELETE FROM users
WHERE id =2;
SAVEPOINT SP2;
ROLLBACK TO SP1;
Dans le code ci-dessus, nous avons initialisé la transaction avec le BEGIN
commande, puis supprimé les lignes avec les identifiants 6 et 2. Pour chaque suppression, nous avons créé deux SAVEPOINT
s; SP1
ET SP2
. Nous avons ensuite annulé la transaction au premier SAVEPOINT
– SP1
.
LIBÉRER LE POINT DE SAUVEGARDE
Les RELEASE SAVEPOINT
La commande est utilisée pour supprimer un fichier généré précédemment SAVEPOINT
. Une fois par SAVEPOINT
a été libéré, vous ne pouvez plus utiliser le ROLLBACK
commande pour annuler les transactions qui se sont produites depuis la dernière SAVEPOINT
.
RELEASE SAVEPOINT SAVEPOINT_NAME;
Modes de transaction dans MySQL
Regardons les modes que nous pouvons définir et comment ils affectent une transaction.
Transaction à validation automatique
MySQL active le mode de validation automatique par défaut. Lorsque le mode de validation automatique est activé, chaque instruction SQL est évaluée comme une transaction et les résultats déterminent si l’instruction est validée ou annulée. Les instructions réussies sont validées, tandis que celles qui échouent sont rapidement annulées. Pour désactiver manuellement le mode de validation automatique, exécutez simplement la commande :
SET @@autocommit := 0;
Transaction implicite
Ajouter COMMIT
valide explicitement une transaction, cependant, il est également possible d’utiliser des contrôles de transaction pour valider implicitement des transactions. Par exemple:
BEGIN;
SET AUTOCOMMIT = 1;
Conclusion
Dans cet article, vous avez appris ce que sont les transactions, pourquoi elles sont importantes et comment les utiliser dans la base de données MySQL. De plus, vous avez appris quelques commandes de contrôle transactionnel et les trois modes de transactions dans MySQL.
Si vous avez des questions, n’hésitez pas à me contacter sur Twitter : @ LordChuks3.