Sobes.tech
Junior — Middle

Как да инициираме нова транзакция в системата за управление на бази данни?

sobes.tech AI

Отговор от AI

В Go за работа с транзакции в бази данни обикновено се използва пакетът database/sql. За иницииране на нова транзакция се извиква методът Begin() върху обекта *sql.DB. Този метод връща обект *sql.Tx, който представлява транзакцията. След това с помощта на методите Commit() или Rollback() може да се потвърди или отменя транзакцията.

Пример:

import (
    "database/sql"
    _ "github.com/lib/pq" // драйвер за PostgreSQL
)

func пример(db *sql.DB) error {
    tx, err := db.Begin()
    if err != nil {
        return err
    }

    // Изпълнение на операции в рамките на транзакцията
    _, err = tx.Exec("INSERT INTO users(name) VALUES($1)", "Alice")
    if err != nil {
        tx.Rollback() // отменя транзакцията при грешка
        return err
    }

    return tx.Commit() // потвърждаване на транзакцията
}