Sobes.tech
Middle

Τι είναι μια συναλλαγή;

sobes.tech AI

Απάντηση από AI

Μια συναλλαγή είναι μια ακολουθία ενεργειών που εκτελείται ως ενιαία μονάδα. Στο πλαίσιο των βάσεων δεδομένων, μια συναλλαγή εγγυάται ότι όλες οι ενέργειες μέσα σε αυτήν ολοκληρώνονται με επιτυχία μαζί, ή σε περίπτωση σφάλματος, ανακαλούνται ώστε να μην αφήνουν το σύστημα σε μη συνεπή κατάσταση. Στη γλώσσα Go, οι συναλλαγές συχνά χρησιμοποιούνται με βάσεις δεδομένων μέσω του πακέτου database/sql.

Παράδειγμα χρήσης συναλλαγής σε Go:

// db — αντικείμενο *sql.DB
ctx := context.Background()
tx, err := db.BeginTx(ctx, nil)
if err != nil {
    log.Fatal(err)
}

_, err = tx.ExecContext(ctx, "INSERT INTO users(name) VALUES(?)", "Alice")
if err != nil {
    tx.Rollback()
    log.Fatal(err)
}

err = tx.Commit()
if err != nil {
    log.Fatal(err)
}

Εδώ, οι ενέργειες εισαγωγής πραγματοποιούνται στο πλαίσιο μιας συναλλαγής, η οποία είτε επιβεβαιώνεται είτε ακυρώνεται σε περίπτωση σφάλματος.