Maison > base de données > tutoriel mysql > le corps du texte

L'omission de COMMIT TRANSACTION annule-t-elle automatiquement les transactions ?

Susan Sarandon
Libérer: 2024-10-24 15:12:02
original
885 Les gens l'ont consulté

Does COMMIT TRANSACTION Omission Automatically Rollback Transactions?

Retour automatique si COMMIT TRANSACTION est omise

Dans l'instruction SQL donnée :

START TRANSACTION;
BEGIN;
INSERT INTO prp_property1 (module_name,environment_name,NAME,VALUE) VALUES ('','production','','300000');

/** Assume there is syntax error SQL here...**/
Blah blah blah

DELETE FROM prp_property1 WHERE environment_name = 'production';
COMMIT TRANSACTION;
Copier après la connexion

La question se pose de savoir si la transaction est automatiquement annulée puisque l'instruction COMMIT TRANSACTION n'est jamais atteinte en raison d'une erreur de syntaxe.

Comportement d'annulation de transaction

Contrairement à l'hypothèse, les transactions ne sont pas automatiquement annulé après avoir rencontré une erreur. Ce comportement est généralement implémenté dans les paramètres de l'application client. Par exemple, le client de ligne de commande MySQL met fin à l'exécution et se ferme en cas d'erreur, ce qui entraîne l'annulation de toutes les transactions en cours.

Lors du développement d'applications personnalisées, les développeurs contrôlent les politiques d'annulation des transactions. Cependant, certaines exceptions existent :

  • La fermeture de la connexion à la base de données annule toujours les transactions en cours.
  • Un blocage ou un délai d'attente de verrouillage déclenche également implicitement une restauration.

En dehors de ces scénarios spécifiques, les erreurs ne provoquent pas automatiquement une restauration. L'erreur est renvoyée et le développeur est libre de décider de la prochaine action, y compris de valider la transaction malgré l'erreur.

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:php
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!