Maison  >  Article  >  base de données  >  Traitement des transactions MySQL : la différence entre la soumission automatique et la soumission manuelle

Traitement des transactions MySQL : la différence entre la soumission automatique et la soumission manuelle

王林
王林original
2024-03-16 11:33:10545parcourir

Traitement des transactions MySQL : la différence entre la soumission automatique et la soumission manuelle

Traitement des transactions MySQL : la différence entre la soumission automatique et la soumission manuelle

Dans la base de données MySQL, une transaction est un ensemble d'instructions SQL, soit toutes exécutées avec succès, soit toutes échouées, garantissant la cohérence et l'intégrité des données. Dans MySQL, les transactions peuvent être divisées en soumission automatique et soumission manuelle. La différence réside dans le moment de la soumission de la transaction et dans l'étendue du contrôle sur la transaction. Ce qui suit présentera en détail la différence entre la soumission automatique et la soumission manuelle, et donnera des exemples de code spécifiques à illustrer.

1. Soumission automatique
Dans MySQL, si le traitement des transactions n'est pas explicitement activé, chaque instruction SQL sera automatiquement soumise. En d'autres termes, la transaction sera automatiquement soumise après l'exécution de chaque instruction SQL et la modification des données prendra effet immédiatement, de sorte que la cohérence des données ne peut être garantie.
Par défaut, MySQL active automatiquement la fonction de validation automatique. Vous pouvez contrôler le comportement de la soumission automatique en définissant le paramètre autocommit. Lorsque autocommit est 1, cela signifie que la soumission automatique est activée ; lorsque autocommit est 0, cela signifie que la soumission automatique est désactivée.

Ce qui suit est un exemple de code simple qui démontre le comportement de la soumission automatique :

CREATE TABLE example_table (
    id INT PRIMARY KEY,
    name VARCHAR(50)
);

INSERT INTO example_table VALUES (1, 'Alice');
INSERT INTO example_table VALUES (2, 'Bob');

SELECT * FROM example_table;

Une fois le code ci-dessus exécuté, les données seront automatiquement soumises et la modification des données prendra effet immédiatement.

2. Soumission manuelle
La soumission manuelle fait référence à l'exécution de plusieurs instructions SQL dans une transaction, puis à la soumission manuelle de la transaction au moment approprié pour garantir la cohérence des données. Dans MySQL, vous pouvez utiliser les instructions BEGIN, COMMIT et ROLLBACK pour contrôler la validation et l'annulation des transactions.

Ce qui suit est un exemple de code qui démontre le comportement de la soumission manuelle :

SET autocommit = 0; -- 关闭自动提交

BEGIN; -- 开始事务

UPDATE example_table SET name = 'Alice Smith' WHERE id = 1;
DELETE FROM example_table WHERE id = 2;

SELECT * FROM example_table; -- 这时数据还未提交,查询结果不包含最新的修改

COMMIT; -- 提交事务

SELECT * FROM example_table; -- 这时数据已提交,查询结果包含最新的修改

Dans le code ci-dessus, la soumission manuelle désactive la soumission automatique en définissant l'autocommit sur 0, puis utilise BEGIN pour démarrer la transaction, exécute plusieurs instructions SQL et enfin utilise COMMIT pour soumettre des affaires. Pendant le processus de soumission manuelle, vous pouvez utiliser ROLLBACK à tout moment pour annuler la transaction et annuler les modifications précédentes. Cela garantit la cohérence et l’intégrité des données.

Résumé : 
La soumission automatique et la soumission manuelle sont deux méthodes de traitement des transactions dans MySQL. La différence réside dans le timing et la méthode de contrôle de la soumission des transactions. La validation automatique valide automatiquement la transaction après l'exécution de chaque instruction SQL, tandis que la validation manuelle nécessite explicitement le démarrage et la fin de la transaction. Dans les applications réelles, choisissez la méthode de soumission appropriée, selon vos besoins, pour garantir la cohérence et l'intégrité des données.

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!

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