Sobes.tech
Junior — Middle

Kako pokrenuti novu transakciju u sistemu za upravljanje bazom podataka?

sobes.tech АИ

Одговор од АИ

U Go-u, za rad sa transakcijama u bazama podataka, obično se koristi paket database/sql. Za iniciranje nove transakcije, poziva se metoda Begin() na objektu *sql.DB. Ova metoda vraća objekat *sql.Tx, koji predstavlja transakciju. Nakon toga, pomoću metoda Commit() ili Rollback(), može se potvrditi ili otkazati transakcija.

Primer:

import (
    "database/sql"
    _ "github.com/lib/pq" // drajver za PostgreSQL
)

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

    // Izvršavanje operacija u okviru transakcije
    _, err = tx.Exec("INSERT INTO users(name) VALUES($1)", "Alice")
    if err != nil {
        tx.Rollback() // otkazivanje transakcije u slučaju greške
        return err
    }

    return tx.Commit() // potvrda transakcije
}