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() կանչը վերացնում է բոլոր փոփոխությունները, որոնք կատարվել են ընթացիկ գործարքի շրջանակում։