Maison  >  Article  >  base de données  >  Transaction MySQL-ROLLBACK, explication détaillée de l'utilisation de COMMIT

Transaction MySQL-ROLLBACK, explication détaillée de l'utilisation de COMMIT

巴扎黑
巴扎黑original
2017-05-19 15:19:044167parcourir

Utiliser ROLLBACK

Maintenant que nous savons ce qu'est le traitement des transactions, discutons des problèmes liés à la gestion du traitement des transactions.

La clé de la gestion du traitement des transactions est de diviser les groupes d'instructions SQL en morceaux logiques et de spécifier clairement quand les données doivent et ne doivent pas être restaurées.

MySQL utilise l'instruction suivante pour identifier le début d'une transaction :

Entrée :

start transaction

La commande ROLLBACK de MySQL est utilisée pour annuler (annuler) l'instruction MySQL , veuillez voir ci-dessous Déclaration :

Entrée :

select * from ordertotals;
start transaction;
delete from ordertotals;
select * from ordertotals;
rollback;
select * from ordertotals;

Analyse : Cet exemple commence par afficher le contenu du tableau des totaux de commande. Exécutez d’abord un SELECT pour montrer que la table n’est pas vide. Ensuite, démarrez une transaction et supprimez toutes les lignes de ordertotals avec une instruction DELETE. Une autre instruction SELECT vérifie que ordertotals est bien vide. À ce stade, une instruction ROLLBACK est utilisée pour annuler toutes les instructions après START TRANSACTION, et la dernière instruction SELECT montre que la table n'est pas vide.

Évidemment, ROLLBACK ne peut être utilisé qu'au sein d'une transaction (après avoir exécuté une commande START TRANSACTION).

Quelles déclarations peuvent être annulées ? Les transactions sont utilisées pour gérer les instructions INSERT, UPDATE et DELETE. Vous ne pouvez pas annuler une instruction SELECT. (Cela ne sert à rien non plus.) Vous ne pouvez pas annuler une opération CREATE ou DROP. Ces deux instructions peuvent être utilisées dans un bloc de transaction, mais elles ne seront pas annulées si vous effectuez une restauration.


Utiliser COMMIT

Les instructions générales MySQL sont exécutées et écrites directement sur les tables de base de données. Il s'agit de ce qu'on appelle la validation implicite, c'est-à-dire que l'opération de validation (écriture ou sauvegarde) est effectuée automatiquement. Cependant, au sein d’un bloc de transaction, les validations ne se produisent pas implicitement. Pour effectuer une validation explicite, utilisez l'instruction COMMIT comme suit :

Entrée :

start transaction;
delete from orderitems where order_num = 20010;
delete from orders where order_num = 20010;
commit;

Analyse : Dans cet exemple, la commande 20010 est complètement supprimée du système. Comme cela implique la mise à jour de deux tables de base de données, commandes et commandesItems, un bloc de transaction est utilisé pour garantir que les commandes ne sont pas partiellement supprimées. L'instruction COMMIT finale écrit uniquement les modifications sans erreur. Si le premier DELETE fonctionne mais que le second échoue, le DELETE n'est pas validé (en fait, il est automatiquement révoqué).

Fermeture implicite de la transaction Lorsqu'une instruction COMMIT ou ROLLBACK est exécutée, la transaction est automatiquement fermée (les modifications futures sont implicitement validées).

[Recommandations associées]

1. Tutoriel vidéo gratuit MySQL

2.Explication d'un exemple de traitement de transaction MySQL

3. Déclencheur MySQL UPDATE (mise à jour) et analyse approfondie des déclencheurs

4 Explication détaillée de l'utilisation du déclencheur de suppression MySQL (suppression)<.>

5.

Explication détaillée du déclencheur d'insertion (insert) dans MySQL

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!

Déclaration:
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