Junior — Middle
Kako se mogu poništiti promene unutar jedne transakcije?
sobes.tech АИ
Одговор од АИ
У 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() поништава све промене направљене у оквиру тренутне транзакције.