Sobes.tech
Junior — Middle

Como é que se podem reverter alterações numa única transação?

sobes.tech IA

Resposta da IA

Em Go, geralmente usa-se o pacote database/sql para trabalhar com transações. Para reverter as alterações dentro de uma mesma transação, é necessário chamar o método Rollback() do objeto de transação. Isso geralmente é feito em caso de erro, para cancelar todas as alterações feitas na transação.

Exemplo:

tx, err := db.Begin()
if err != nil {
    // tratamento de erro
}

// Execução de operações na transação
_, err = tx.Exec("INSERT INTO users(name) VALUES(?)", "John")
if err != nil {
    tx.Rollback() // reverter a transação em caso de erro
    return err
}

// Se tudo correr bem, confirmar a transação
err = tx.Commit()
if err != nil {
    return err
}

Assim, a chamada a tx.Rollback() desfaz todas as alterações feitas na transação atual.