Для чего нужна транзакция
Python
Senior
Без компании
Для чего нужна транзакция
Ответы
Транзакция в базах данных — это последовательность операций, выполняемая как единое целое. Она обеспечивает целостность данных, даже если во время выполнения произойдёт сбой.
Основные свойства транзакций (ACID):
- **Атомарность** — либо все операции выполняются, либо ни одна.
- **Согласованность** — данные остаются в корректном состоянии.
- **Изолированность** — параллельные транзакции не влияют друг на друга.
- **Долговечность** — после завершения изменения сохраняются.
Пример в Python с SQLite:
```
import sqlite3
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
try:
conn.execute("BEGIN TRANSACTION")
cursor.execute("INSERT INTO users (name) VALUES ('Alice')")
cursor.execute("UPDATE accounts SET balance = balance - 100 WHERE user_id = 1")
conn.commit() # Подтверждаем изменения
except Exception as e:
conn.rollback() # Откатываем при ошибке
print(f"Error: {e}")
finally:
conn.close()
```