Sobes.tech
Junior — Middle

Jak lze vrátit změny v rámci jedné transakce?

sobes.tech AI

Odpověď od AI

V jazyce Go se obvykle pro práci s transakcemi používá balíček database/sql. K pro zrušení změn v rámci jedné transakce je třeba zavolat metodu Rollback() objektu transakce. To se obvykle provádí v případě chyby, aby se zrušily všechny změny provedené v rámci transakce.

Příklad:

tx, err := db.Begin()
if err != nil {
    // zpracování chyby
}

// Provádění operací v transakci
_, err = tx.Exec("INSERT INTO users(name) VALUES(?)", "John")
if err != nil {
    tx.Rollback() // zrušení transakce při chybě
    return err
}

// Pokud je vše úspěšné, potvrďte transakci
err = tx.Commit()
if err != nil {
    return err
}

Tímto způsobem volání tx.Rollback() zruší všechny změny provedené v aktuální transakci.