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() чакырыгы, учурдагы транзакциянын чегинде жасалган бардык өзгөртүүлөрдү жокко чыгарат.