Maison > base de données > tutoriel mysql > Comment implémentons-nous les transactions MySQL ?

Comment implémentons-nous les transactions MySQL ?

WBOY
Libérer: 2023-09-02 11:53:02
avant
1321 Les gens l'ont consulté

Comment implémentons-nous les transactions MySQL ?

Nous savons que dans une transaction, les instructions sont exécutées comme une unité. Si une opération au sein de la transaction échoue, la transaction entière échoue et doit être annulée. Dans le cas contraire, toutes les modifications apportées par l'instruction sont enregistrées dans la base de données. Afin d'implémenter les transactions, MySQL fournit l'instruction suivante -

START TRANSACTION

Comme son nom l'indique, la transaction commence à partir de cette instruction. Fondamentalement, il informe MySQL que les instructions suivantes doivent être traitées comme une seule unité de travail jusqu'à la fin de la transaction.

COMMIT

L'instruction COMMIT valide les modifications apportées à la base de données. En d’autres termes, lorsqu’une transaction se termine avec succès, une commande COMMIT doit être émise pour rendre effectives les modifications apportées à toutes les tables impliquées.

ROLLBACK

La commande ROLLBACK annule toutes les modifications apportées par l'instruction et ramène la base de données à son état précédent, qui était l'état au début de la transaction.

Exemple

Ce qui suit est un exemple montrant l'implémentation d'une transaction MySQL -

mysql> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO Marks Values(1, 'Aarav','Maths',50);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO Marks Values(2, 'Harshit','Maths',55);
Query OK, 1 row affected (0.00 sec)

mysql> COMMIT;
Query OK, 0 rows affected (0.06 sec)
Copier après la connexion

Dans cet exemple, la transaction est démarrée par l'instruction START TRANSACTION. Exécutez ensuite deux instructions INSERT, suivies d'une instruction COMMIT. L'instruction COMMIT enregistre les modifications apportées à la base de données, qui peuvent être observées à partir de l'ensemble de résultats suivant, qui montre que les valeurs ont été insérées dans la table -

mysql> SELECT * FROM Marks;
 +------+---------+---------+-------+
| Id   | Name    | Subject | Marks |
+------+---------+---------+-------+
| 1    | Aarav   | Maths   | 50    |
| 2    | Harshit | Maths   | 55    |
+------+---------+---------+-------+
2 rows in set (0.00 sec)

mysql> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO Marks Values(1, 'Aarav','History',40);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO Marks Values(1, 'Harshit','History',48);
Query OK, 1 row affected (0.00 sec)

mysql> ROLLBACK;
Query OK, 0 rows affected (0.04 sec)
Copier après la connexion

Dans cet exemple, la transaction est démarrée par l'instruction START TRANSACTION . Exécutez ensuite deux instructions INSERT, suivies d'une instruction ROLLBACK. L'instruction ROLLBACK annulera les modifications apportées à la base de données, ce qui peut être observé à partir du jeu de résultats suivant qui montre qu'aucune nouvelle valeur n'a été insérée dans la table -

mysql> SELECT * FROM Marks;
+------+---------+---------+-------+
| Id   | Name    | Subject | Marks |
+------+---------+---------+-------+
| 1    | Aarav   | Maths   | 50    |
| 1    | Harshit | Maths   | 55    |
+------+---------+---------+-------+
2 rows in set (0.00 sec)
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal