Junior — Middle
Πώς μπορεί να αναιρεθεί μια αλλαγή εντός μιας συναλλαγής;
sobes.tech AI
Απάντηση από AI
Στη Go, για εργασία με συναλλαγές, συνήθως χρησιμοποιείται το πακέτο database/sql. Για να ακυρώσετε τις αλλαγές εντός μιας συναλλαγής, πρέπει να καλέσετε τη μέθοδο Rollback() του αντικειμένου της συναλλαγής. Αυτό γίνεται συνήθως σε περίπτωση σφάλματος, για να ακυρωθούν όλες οι αλλαγές που έγιναν στο πλαίσιο της συναλλαγής.
Παράδειγμα:
trx, err := db.Begin()
if err != nil {
// διαχείριση σφάλματος
}
// Εκτέλεση λειτουργιών στη συναλλαγή
_, err = trx.Exec("INSERT INTO users(name) VALUES(?)", "John")
if err != nil {
trx.Rollback() // ακύρωση της συναλλαγής σε περίπτωση σφάλματος
return err
}
// Αν όλα πάνε καλά, επιβεβαιώστε τη συναλλαγή
err = trx.Commit()
if err != nil {
return err
}
Έτσι, η κλήση trx.Rollback() ακυρώνει όλες τις αλλαγές που έγιναν στο πλαίσιο της τρέχουσας συναλλαγής.