Ответ
Атомарность (Atomicity) — одно из ключевых свойств транзакций (ACID). Гарантирует, что транзакция выполнится полностью или не выполнится вообще. Если на любом этапе происходит ошибка, все изменения откатываются.
Пример с database/sql в Go:
tx, err := db.Begin()
if err != nil {
log.Fatal(err)
}
_, err = tx.Exec("UPDATE accounts SET balance = balance - 100 WHERE user_id = 1")
if err != nil {
tx.Rollback() // Откат при ошибке
return
}
_, err = tx.Exec("UPDATE accounts SET balance = balance + 100 WHERE user_id = 2")
if err != nil {
tx.Rollback() // Откат при ошибке
return
}
err = tx.Commit() // Фиксация только если всё успешно
if err != nil {
log.Fatal(err)
}