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