Maison > base de données > tutoriel mysql > La validation automatique des transactions MySQL est automatiquement validée

La validation automatique des transactions MySQL est automatiquement validée

黄舟
Libérer: 2017-02-06 10:52:33
original
1246 Les gens l'ont consulté

Le mode de fonctionnement par défaut de MySQL est le mode de validation automatique. Cela signifie qu'à moins que vous ne démarriez explicitement une transaction, chaque requête est automatiquement exécutée en tant que transaction distincte. Nous pouvons changer si le mode de validation automatique est automatiquement soumis en définissant la valeur de validation automatique.

Vous pouvez afficher le mode de validation automatique actuel via la commande suivante

mysql> show variables like 'autocommit';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit    | ON    |
+---------------+-------+
1 row in set (0.04 sec)
Copier après la connexion

À partir des résultats de la requête, nous constatons que la valeur de Value est ON, indiquant que la validation automatique est activée. Nous pouvons changer ce mode via l'instruction SQL suivante

mysql> set autocommit = 0;
Copier après la connexion

Les valeurs 0 et OFF sont les mêmes. Bien sûr, 1 signifie ON. En définissant autocommit=0 ci-dessus, l'utilisateur sera toujours dans une transaction jusqu'à ce qu'une instruction de validation ou de restauration soit exécutée pour mettre fin à la transaction en cours et démarrer une nouvelle transaction.

Par exemple :

Zhang San transfère 500 yuans à Li Si. Ensuite, les opérations suivantes doivent être effectuées dans la base de données :

1. Vérifiez d'abord si le solde du compte de Zhang San est suffisant

2 Soustrayez 500 yuans du compte de Zhang San

3. , ajoutez 500 yuans au compte de Li Si

Les trois étapes ci-dessus peuvent être mises en une seule transaction pour exécuter la validation, soit elles sont toutes exécutées, soit aucune d'entre elles n'est exécutée. Si tout va bien, engagez-vous à soumettre. les données de modification permanentes. Si une erreur se produit, la restauration revient à l'état précédant la modification. Grâce au traitement des transactions, il n'arrivera pas que l'argent de Zhang San soit réduit du compte de Li Si mais n'augmente pas de 500 yuans, ou que l'argent de Zhang San ne soit pas soustrait du compte de Li Si mais que 500 yuans soient ajoutés.

Le moteur de stockage par défaut de MySQL est MyISAM. Le moteur de stockage MyISAM ne prend pas en charge le traitement des transactions, donc la modification de la validation automatique n'a aucun effet. Mais aucune erreur ne sera signalée, donc si vous souhaitez utiliser le traitement des transactions, vous devez vous assurer que celui que vous utilisez prend en charge le traitement des transactions, tel qu'InnoDB. Si vous ne connaissez pas le moteur de stockage de la table, vous pouvez vérifier s'il existe un moteur de stockage qui spécifie le type de transaction lors de la création de la table en consultant l'instruction de création de table. Si le moteur de stockage n'est pas spécifié, le moteur de stockage par défaut. est MyISAM qui ne prend pas en charge les transactions.

Bien sûr, le traitement des transactions vise à garantir l'atomicité, la cohérence, l'isolement et la durabilité des données des tables. Tout cela consomme des ressources système, alors choisissez avec soin.

Ce qui précède est le contenu automatiquement soumis par la validation automatique des transactions MySQL. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (m.sbmmt.com) !


Étiquettes associées:
source:php.cn
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