Sobes.tech
Junior — Middle

Маалыматтар базасын башкаруу системасында жаңы транзакцияны кантип баштоо керек?

sobes.tech AI

AIден жооп

Go тилинде маалыматтар базасындагы транзакциялар менен иштөө үчүн көбүнчө database/sql пакети колдонулат. Жаңы транзакцияны баштоо үчүн *sql.DB объектисинде Begin() методу чакырылат. Бул метод *sql.Tx объектисин кайтарат, ал транзакцияны көрсөтөт. Андан соң, Commit() же Rollback() методдору аркылуу транзакцияны ырастап же жокко чыгара аласыз.

Мисал:

import (
    "database/sql"
    _ "github.com/lib/pq" // PostgreSQL драйвери
)

func мисал(db *sql.DB) error {
    tx, err := db.Begin()
    if err != nil {
        return err
    }

    // Транзакциянын чегинде операцияларды аткаруу
    _, err = tx.Exec("INSERT INTO users(name) VALUES($1)", "Alice")
    if err != nil {
        tx.Rollback() // каталарда транзакцияны кайтаруу
        return err
    }

    return tx.Commit() // транзакцияны ырастоо
}