В Go для работы с транзакциями обычно используется пакет database/sql. Чтобы откатить изменения в рамках одной транзакции, нужно вызвать метод Rollback() у объекта транзакции. Обычно это делается в случае ошибки, чтобы отменить все изменения, сделанные в рамках транзакции.
Каким образом можно откатить изменения в рамках одной транзакции?
В Go для работы с транзакциями обычно используется пакет database/sql.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В Go для работы с транзакциями обычно используется пакет database/sql. Чтобы откатить изменения в рамках одной транзакции, нужно вызвать метод Rollback() у объекта транзакции. Обычно это делается в случае ошибки, чтобы отменить все изменения, сделанные в рамках транзакции.
Пример:
tx, err := db.Begin()
if err != nil {
// обработка ошибки
}
// Выполнение операций в транзакции
_, err = tx.Exec("INSERT INTO users(name) VALUES(?)", "John")
if err != nil {
tx.Rollback() // откат транзакции при ошибке
return err
}
// Если все успешно, фиксируем транзакцию
err = tx.Commit()
if err != nil {
return err
}
Таким образом, вызов tx.Rollback() отменяет все изменения, сделанные в рамках текущей транзакции.