Каким образом можно откатить изменения в рамках одной транзакции?

В Go для работы с транзакциями обычно используется пакет database/sql.

Короткий ответ

Что ответить на собеседовании

В Go для работы с транзакциями обычно используется пакет database/sql. Чтобы откатить изменения в рамках одной транзакции, нужно вызвать метод Rollback() у объекта транзакции. Обычно это делается в случае ошибки, чтобы отменить все изменения, сделанные в рамках транзакции.

Подробный разбор

Ответ с пояснениями

В 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() отменяет все изменения, сделанные в рамках текущей транзакции.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее