Sobes.tech
Junior — Middle

Como iniciar uma nova transação no sistema de gestão de base de dados?

sobes.tech IA

Resposta da IA

Em Go, para trabalhar com transações em bases de dados, geralmente é utilizado o pacote database/sql. Para iniciar uma nova transação, chama-se o método Begin() no objeto *sql.DB. Este método devolve um objeto *sql.Tx, que representa a transação. Depois, com os métodos Commit() ou Rollback(), pode-se confirmar ou cancelar a transação.

Exemplo:

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

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

    // Executar operações dentro da transação
    _, err = tx.Exec("INSERT INTO users(name) VALUES($1)", "Alice")
    if err != nil {
        tx.Rollback() // cancelar a transação em caso de erro
        return err
    }

    return tx.Commit() // confirmar a transação
}