Sobes.tech
Junior — Middle

Jak zainicjować nową transakcję w systemie zarządzania bazą danych?

sobes.tech AI

Odpowiedź od AI

W Go, do pracy z transakcjami w bazach danych zazwyczaj używa się pakietu database/sql. Aby zainicjować nową transakcję, wywołuje się metodę Begin() na obiekcie *sql.DB. Ta metoda zwraca obiekt *sql.Tx, który reprezentuje transakcję. Następnie, za pomocą metod Commit() lub Rollback(), można zatwierdzić lub anulować transakcję.

Przykład:

import (
    "database/sql"
    _ "github.com/lib/pq" // sterownik dla PostgreSQL
)

func przykład(db *sql.DB) error {
    tx, err := db.Begin()
    if err != nil {
        return err
    }

    // Wykonanie operacji w ramach transakcji
    _, err = tx.Exec("INSERT INTO users(name) VALUES($1)", "Alice")
    if err != nil {
        tx.Rollback() // wycofanie transakcji w przypadku błędu
        return err
    }

    return tx.Commit() // zatwierdzenie transakcji
}