Sobes.tech
Middle+
12

Как работают транзакции в PostgreSQL и MySQL?

Компании, где спрашивали
Бюро 1440Бюро 1440

Ответ от нейросети

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()
}

Таким образом, транзакции позволяют сгруппировать несколько операций в единое целое, которое либо полностью выполнится, либо откатится при ошибке.