Sobes.tech
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() поништава све промене направљене у оквиру тренутне транзакције.