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

黄舟
黄舟original
2017-02-06 10:52:331233parcourir

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)

À 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;

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 (www.php.cn) !


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