Qu'est-ce que le contrôle des transactions
Une transaction fait référence à une série d'opérations effectuées comme une unité logique de travail. Ces opérations Soit toutes réussissent , soit toutes échouent . Les transactions garantissent que plusieurs modifications de données sont traitées comme une unité.
Supposons que Zhang San transfère 100 yuans à Li Si au guichet automatique. Dans le système commercial de la banque, des opérations de modification de données en deux étapes seront effectuées :
Comment opérer Que se passe-t-il si l'opération 1 est exécuté avec succès mais l'opération 2 échoue ?
Recommandations d'apprentissage gratuites associées : Tutoriel vidéo MySQL
Quatre caractéristiques des transactions
Si une base de données prend en charge les transactions, alors la base de données doit avoir les quatre caractéristiques deACID, à savoir Atomicité (atomicité), Cohérence (cohérence), Isolation (isolement), Durabilité.
Contrôle des transactions MySQL
Dans lesconditions par défaut, MySQL soumet automatiquement les transactions, c'est-à-dire que chaque instruction SQL INSERT, UPDATE et DELETE effectuera une opération COMMIT immédiatement après la soumission. Par conséquent, pour démarrer une transaction, vous pouvez utiliser start transaction ou begin, ou définir la valeur de autocommit sur 0.
Exemple
USE student;SHOW TABLES;
2. Créez la table de données bank_account et insérez deux enregistrements, définissez la valeur du champ de solde de Zhang San +1000
CREATE TABLE bank_account( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30) COMMENT '姓名', balance DECIMAL(18, 2) COMMENT '账户余额');INSERT INTO bank_account(id, name, balance) VALUE(1, '张三', 0);INSERT INTO bank_account(id, name, balance) VALUE(2, '李四', 0);UPDATE bank_account SET balance = balance + 1000 WHERE id = 1;
3. Afficher la valeur de validation automatique par défaut
SELECT @@autocommit;
4. Afficher tous les enregistrements dans la table de données du compte bancaire
SELECT * FROM bank_account;
5. Démarrez le contrôle des transactions et exécutez deux instructions SQL
START TRANSACTION;UPDATE bank_account SET balance = balance - 100 WHERE id = 1;UPDATE bank_account SET balance = balance + 100 WHERE id = 2;COMMIT;
6. Afficher le contenu de la table de données à ce moment
SELECT * FROM bank_account;
7. Relancez le contrôle des transactions, insérez les deux mêmes instructions SQL, mais modifiez le commit en rollback
START TRANSACTION;UPDATE bank_account SET balance = balance - 100 WHERE id = 1;UPDATE bank_account SET balance = balance + 100 WHERE id = 2;ROLLBACK;
8. Vérifiez à nouveau le contenu de la table de données et constatez que le retour Il y a aucun changement dans les données après le lancement de
SELECT * FROM bank_account;
Remarque : cet article est un résumé de l'apprentissage MySQL du blogueur et ne prend en charge aucune utilisation commerciale. Veuillez indiquer la source lors de la réimpression ! Si vous avez également un certain intérêt et une certaine compréhension pour l'apprentissage de MySQL, vous êtes invités à communiquer avec les blogueurs à tout moment ~
Plus de recommandations d'apprentissage gratuites connexes : Tutoriel mysql (Vidéo)
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!