Junior — Middle
Դուք ունեցել եք փորձ տվյալների բազաների հետ աշխատելիս ներսի գործարքների օգտագործման մասին?
sobes.tech AI
Պատասխան AI-ից
Ներքաշված գործարքները հնարավորությունն են սկսել մեկ գործարքի ներսում մյուսը, որը կարող է հաստատվել կամ չեղարկվել անկախ։ Ամենաշատ բազայի կառավարման համակարգերը (DBMS) չեն աջակցում ուղղակիորեն ներքաշված գործարքներին, բայց կարող են օգտագործվել savepoints (խնայողական կետեր):
Go լեզվով, աշխատելով տվյալների բազաների հետ database/sql փաթեթի միջոցով, կարելի է օգտագործել savepoints՝ նմուշառելու ներքաշված գործարքները:
// Հիմնական գործարքը սկսում ենք
tx, err := db.Begin()
if err != nil {
// սխալի մշակումը
}
// Ստեղծում ենք savepoint
_, err = tx.Exec("SAVEPOINT sp1")
if err != nil {
// սխալի մշակումը
}
// Կատարում ենք գործողություններ
// ...
// Սխալի դեպքում վերադառնում ենք savepoint-ին
_, err = tx.Exec("ROLLBACK TO SAVEPOINT sp1")
// Վերջում հաստատում ենք հիմնական գործարքը
err = tx.Commit()
Այսպիսով, կարող եք վերահսկել գործարքի մասնիկները, առանց ամբողջ գործողությունը չեղարկելու։