Senior
Que tipos de transações conhece? Para que servem?
sobes.tech IA
Resposta da IA
Em Go, as transações geralmente estão relacionadas com bases de dados e são usadas para garantir a atomicidade, coerência, isolamento e durabilidade (ACID).
Tipos de transações:
- Transações automáticas — quando cada operação é executada como uma transação separada.
- Transações explícitas — quando o desenvolvedor inicia, confirma ou reverte explicitamente uma transação usando os métodos
Begin(),Commit(),Rollback(). - Transações de longa duração — usadas em sistemas distribuídos, onde a transação pode durar muito tempo e requer coordenação.
Para que servem as transações:
- Garantem que um grupo de operações seja concluído na totalidade ou não seja concluído.
- Previnem condições de corrida e garantem a integridade dos dados.
- Permitem reverter alterações em caso de erros.
Exemplo de uso de transação em Go com uma base de dados:
tx, err := db.Begin()
if err != nil {
log.Fatal(err)
}
_, err = tx.Exec("INSERT INTO users(name) VALUES(?)", "Alice")
if err != nil {
tx.Rollback()
log.Fatal(err)
}
err = tx.Commit()
if err != nil {
log.Fatal(err)
}