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