Что такое транзакция?

Junior
1.4k просмотров
AFK Offer AI

Транзакция — группа SQL-операций, выполняемых как единое целое. Либо все операции успешны (COMMIT), либо все откатываются (ROLLBACK). Классический пример — перевод денег: списание с одного счёта и зачисление на другой должны произойти вместе.

tx, _ := pool.Begin(ctx)
defer tx.Rollback(ctx)

tx.Exec(ctx, "UPDATE accounts SET balance = balance - 100 WHERE id = $1", fromID) tx.Exec(ctx, "UPDATE accounts SET balance = balance + 100 WHERE id = $1", toID)

tx.Commit(ctx)

В Go с pgx используешь pool.Begin(), выполняешь запросы через tx, и в конце Commit или Rollback. defer Rollback — идиоматичный паттерн: если Commit уже произошёл, Rollback ничего не делает.

Следующий вопрос

Что такое Redis и зачем он нужен?