Sobes.tech
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

Այսպիսով, գործարքները ապահովում են տվյալների ամբողջականությունը՝ կամ բոլոր թարմացումները հաջողությամբ կատարվում են, կամ սխալի դեպքում փոփոխությունները վերացվում են։