Sobes.tech
Back to questions
Junior — Middle
64

Как осуществляется управление операциями в рамках одной транзакции в базе данных?

Companies where asked
ИП Калюков Н.С.

Answer from AI

sobes.tech AI

Управление операциями в рамках одной транзакции в базе данных обычно осуществляется с помощью механизма транзакций, который гарантирует атомарность, согласованность, изолированность и долговечность (ACID). В Python при работе с базой данных через библиотеки, например, sqlite3 или psycopg2, транзакция начинается автоматически или явно, и изменения фиксируются командой commit или отменяются rollback.

Пример с использованием sqlite3:

import sqlite3
conn = sqlite3.connect('example.db')
cursor = conn.cursor()

try:
    cursor.execute("INSERT INTO users (name) VALUES ('Alice')")
    cursor.execute("INSERT INTO accounts (user_id, balance) VALUES (last_insert_rowid(), 1000)")
    conn.commit()  # фиксируем изменения
except Exception as e:
    conn.rollback()  # откатываем изменения при ошибке
    print(f"Ошибка: {e}")
finally:
    conn.close()

Таким образом, все операции внутри блока либо применяются вместе, либо не применяются вовсе.