Junior — Middle
Ինչպե՞ս իրականացնում եք և կառավարում եք գործարքները տվյալների թարմացման գործողությունների ժամանակ։
sobes.tech AI
Պատասխան AI-ից
Python-да, տվյալների թարմացման ժամանակ գործարքների կառավարումը սովորաբար իրականացվում է կոնտեքստային մենեջերների միջոցով, որոնք ապահովում են ավտոմատ սկսում, հաստատում (commit) կամ հետաձգում (rollback) գործարքը:
Օրինակ, sqlite3 գրադարանի միջոցով տվյալների բազայի հետ աշխատելիս՝
import sqlite3
conn = sqlite3.connect('example.db')
try:
with conn:
conn.execute("UPDATE users SET balance = balance - 100 WHERE id = ?", (user_id,))
conn.execute("UPDATE users SET balance = balance + 100 WHERE id = ?", (recipient_id,))
# Եթե `with` բլոկի ներսում սխալ չլինի, գործարքը ավտոմատ հաստատվում է
except Exception as e:
# Սխալի դեպքում, գործարքը ավտոմատ հետ է մղվում
print(f"Տվյալների թարմացման սխալ: {e}")
Եթե օգտագործում եք ORM, օրինակ SQLAlchemy, ապա գործարքները վերահսկվում են սեսիաների միջոցով՝
from sqlalchemy.orm import Session
with Session(engine) as session:
try:
# թարմացման գործողություններ
session.commit()
except:
session.rollback()
raise
Այսպիսով, գործարքները ապահովում են տվյալների ամբողջականությունը՝ կամ բոլոր թարմացումները հաջողությամբ կատարվում են, կամ սխալի դեպքում փոփոխությունները վերացվում են։