Sobes.tech
Junior — Middle

Ինչպե՞ս կարելի է վերականգնել փոփոխությունները մեկ գործարքի շրջանակում։

sobes.tech AI

Պատասխան AI-ից

Go լեզվում սովորաբար գործածվում է database/sql փաթեթը՝ գործարքների հետ աշխատելու համար։ Մի գործարքի շրջանակում կատարված փոփոխությունները վերացնելու համար անհրաժեշտ է զանգահարել Rollback() մեթոդը գործարքի օբյեկտի վրա։ Սա սովորաբար կատարվում է սխալի դեպքում՝ բոլոր փոփոխությունները վերացնելու համար։

Օրինակ՝

trx, err := db.Begin()
if err != nil {
    // սխալի մշակումը
}

// Գործարքում գործողությունների իրականացման
_, err = trx.Exec("INSERT INTO users(name) VALUES(?)", "John")
if err != nil {
    trx.Rollback() // գործարքի վերացում սխալի դեպքում
    return err
}

// Եթե ամեն ինչ հաջող է անցել, հաստատել գործարքը
err = trx.Commit()
if err != nil {
    return err
}

Այսպիսով, trx.Rollback() կանչը վերացնում է բոլոր փոփոխությունները, որոնք կատարվել են ընթացիկ գործարքի շրջանակում։