Transactions imbriquées dans MySQL
Contrairement à certains autres systèmes de gestion de bases de données, MySQL ne prend pas en charge nativement les transactions imbriquées. Cela signifie que vous ne pouvez pas créer une nouvelle transaction au sein d'une transaction existante. Cependant, MySQL InnoDB, un moteur de stockage populaire utilisé dans MySQL, offre une solution pour gérer le comportement de type transaction imbriquée grâce à l'utilisation de points de sauvegarde.
SAVEPOINTS dans InnoDB
Les points de sauvegarde vous permettent de créer des jalons temporaires au sein d'une transaction. Vous pouvez créer et nommer un point de sauvegarde, puis revenir à ce point de sauvegarde pour annuler toutes les opérations survenues après celui-ci. Cela offre un niveau de granularité et de flexibilité similaire aux transactions imbriquées.
Comment utiliser les SAVEPOINTS
Pour utiliser les points de sauvegarde dans MySQL, vous pouvez suivre ces étapes :
Exemple
Considérons l'exemple suivant :
CREATE TABLE t_test (id INT NOT NULL PRIMARY KEY) ENGINE=InnoDB; START TRANSACTION; INSERT INTO t_test VALUES (1); SELECT * FROM t_test; id --- 1 SAVEPOINT tran2; INSERT INTO t_test VALUES (2); SELECT * FROM t_test; id --- 1 2 ROLLBACK TO tran2; SELECT * FROM t_test; id --- 1 ROLLBACK; SELECT * FROM t_test; id ---
Dans cet exemple, nous montrons comment revenir à un point de sauvegarde (tran2), puis annulez l'intégralité de la transaction.
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!