Middle+
12
Как работают транзакции в PostgreSQL и MySQL?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Транзакции в PostgreSQL и MySQL обеспечивают атомарность, согласованность, изолированность и долговечность (ACID).
-
В PostgreSQL транзакции начинаются с
BEGINи завершаютсяCOMMITилиROLLBACK. Поддерживается MVCC (многоверсионная конкуррентность), что позволяет изолировать транзакции без блокировок чтения. -
В MySQL поведение зависит от движка хранения. Например, InnoDB поддерживает транзакции с MVCC и уровни изоляции, а MyISAM — нет.
Пример на Go с использованием базы данных:
import (
"database/sql"
_ "github.com/lib/pq" // для PostgreSQL
)
func example(db *sql.DB) error {
tx, err := db.Begin()
if err != nil {
return err
}
defer tx.Rollback()
_, err = tx.Exec("INSERT INTO users(name) VALUES($1)", "Alice")
if err != nil {
return err
}
return tx.Commit()
}
Таким образом, транзакции позволяют сгруппировать несколько операций в единое целое, которое либо полностью выполнится, либо откатится при ошибке.