Sobes.tech
Junior — Middle

Come avviare una nuova transazione nel sistema di gestione del database?

sobes.tech AI

Risposta dell'AI

In Go, per lavorare con le transazioni nei database, si utilizza generalmente il pacchetto database/sql. Per iniziare una nuova transazione, si chiama il metodo Begin() sull'oggetto *sql.DB. Questo metodo restituisce un oggetto *sql.Tx, che rappresenta la transazione. Successivamente, con i metodi Commit() o Rollback(), si può confermare o annullare la transazione.

Esempio:

import (
    "database/sql"
    _ "github.com/lib/pq" // driver per PostgreSQL
)

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

    // Eseguire operazioni all'interno della transazione
    _, err = tx.Exec("INSERT INTO users(name) VALUES($1)", "Alice")
    if err != nil {
        tx.Rollback() // annullare la transazione in caso di errore
        return err
    }

    return tx.Commit() // confermare la transazione
}