Utiliser des points de rétention
De simples instructions ROLLBACK et COMMIT peuvent écrire ou annuler des transactions entières. Toutefois, cela n'est possible que pour des transactions simples ; des transactions plus complexes peuvent nécessiter une validation ou une annulation partielle.
Par exemple, le processus d'ajout d'une commande décrit précédemment est une transaction. Si une erreur se produit, revenez simplement à avant d'ajouter la ligne des commandes ; il n'est pas nécessaire de revenir à la table des clients (si elle existe).
Afin de prendre en charge l'annulation d'une partie d'une transaction, des espaces réservés doivent être placés aux emplacements appropriés dans le bloc de transaction. De cette façon, si vous devez revenir en arrière, vous pouvez revenir à un espace réservé.
Ces espaces réservés sont appelés points de rétention. Pour créer un espace réservé, utilisez l'instruction SAVEPOINT comme suit :
Entrez :
savepoint deletel;
Chaque point de sauvegarde reçoit un nom unique qui l'identifie afin que lors de la restauration, MySQL sache où retomber. Pour revenir aux points de rétention donnés dans cet exemple, procédez comme suit :
Entrez :
rollback to deletel;
Plus il y a de points de rétention, mieux c'est. Vous pouvez définir autant de points de rétention que vous le souhaitez. voulez dans le code MySQL, plus c'est mieux. Pourquoi? Parce que plus vous disposez de points de rétention, plus vous disposez de flexibilité pour revenir en arrière à votre guise.
Libérer le point de rétention Le point de rétention est automatiquement libéré une fois la transaction terminée (exécuter un ROLLBACK ou un COMMIT). Depuis MySQL 5, il est également possible de libérer explicitement un point de rétention avec RELEASESAVEPOINT.
Modification du comportement de validation par défaut
Comme indiqué, le comportement par défaut de MySQL consiste à valider automatiquement tous Changement. En d’autres termes, chaque fois que vous exécutez une instruction MySQL, l’instruction est réellement exécutée sur la table et les modifications prennent effet immédiatement. Pour demander à MySQL de ne pas valider automatiquement les modifications, vous devez utiliser l'instruction suivante :
Entrée :
set autocommit = 0;
Analyse : l'indicateur de validation automatique détermine s'il faut valider automatiquement les modifications, qu'il y ait ou non est une instruction COMMIT. Définir autocommit sur 0 (false) indique à MySQL de ne pas valider automatiquement les modifications (jusqu'à ce que autocommit soit défini sur true).
L'indicateur est spécifique à la connexion L'indicateur de validation automatique concerne chaque connexion plutôt que le serveur.
[Recommandations associées]
1. Tutoriel vidéo gratuit MySQL
2 Transaction MySQL-ROLLBACK, explication détaillée de l'utilisation de COMMIT<.>
3.Explication de l'exemple de traitement des transactions MySQL
4Déclencheur MySQL UPDATE (mise à jour) et déclencheur d'analyse approfondie.
5.Explication détaillée de l'utilisation du déclencheur de suppression MySQL (suppression)
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!