Une transaction est un moyen de garantir que toutes les instructions ALL réussissent, sinon aucune.
Par exemple, pour transférer de l'argent du compte bancaire de Bob à Alice, on peut le faire:
MISE À JOUR compte SET montant = montant - 100 WHERE nom = 'Bob'; Comptes UPDATE montant SET = montant + 100 WHERE nom = 'Alice';
Mais imaginez si quelque chose ne va pas (le serveur tombe en panne à cause d'une coupure de courant) après la première déclaration. La banque a maintenant déduit 100 dollars de Bob, mais Alice n'a rien eu!
Pour éviter cela, nous utilisons une transaction. Comme l'a expliqué Etan: vous commencez d'abord, puis vous exécutez toutes les déclarations. Si tout s'est bien passé, alors COMMIT. Seulement alors les modifications sont sauvegardées.
Si quelque chose ne va pas (par exemple, il n'y a pas de compte pour Alice), vous pouvez ROLLBACK, ou le serveur va ROLLBACK si quelque chose ne va pas très bien (la puissance tombe en panne).
Pour répondre à votre mise à jour Si vous avez mis à jour quelque chose dans une table, vous pouvez réinitialiser la valeur précédente en utilisant cette fonction que si vous avez commencé avec BEGIN et n'a pas encore COMMIT, oui.
Vous ne devez pas dicter la façon dont les gens répondent. En cas d'occasion, vous trouverez que la documentation _does_ offre la meilleure explication. –
Aww, peut-être qu'il n'est pas un locuteur natif anglais et les docs ne sont pas disponibles dans sa langue?Peut-être qu'il le veut paraphrasé, comme un étudiant l'entend d'un enseignant? – Konerak
+1 konerak..Thanks –