Dans les interactions de la base de données Go, l'utilisation de report pour le retrait de transaction peut soulever des questions. Considérez l'exemple suivant:
tx, err := db.Begin() if err != nil { log.Fatal(err) } defer tx.Rollback() // Why defer?
Cet exemple illustre comment un rollback de transaction est différé dans Go. Le report du Rollback garantit qu'il est toujours appelé, même si les opérations suivantes rencontrent des erreurs ou que le code revient brusquement avant un rollback manuel.
Pourquoi ne pas engager d'abord et rollback manuellement sur l'erreur? [
on peut se demander pourquoi ne pas simplement commettre la transaction d'abord et en arrière manuellement si une erreur se produit. Cette approche est inefficace car elle peut conduire à la création d'enregistrements orphelins ou à une incohérence dans la base de données.
Représenter Rollback et commettre un flux de travail
S'assure que le retour en arrière se produira si les opérations suivantes échouent. Voici comment le workflow se déroule:
Avantages de la différence de rollback
Notes supplémentaires
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3