Встречается на 1% собеседований по Python
Как пользуешься понятием транзакция в контексте операций записи обновления
Транзакция в Python (особенно при работе с БД) - это атомарная группа операций, которая либо выполняется целиком, либо не выполняется вообще. Основные принципы:
- Используется для обеспечения целостности данных
- Поддерживается ACID (Atomicity, Consistency, Isolation, Durability)
- В SQL-базах обычно реализуется через BEGIN/COMMIT/ROLLBACK
Пример с SQLite:
python
import sqlite3
conn = sqlite3.connect('test.db')
cursor = conn.cursor()
try:
conn.execute("BEGIN TRANSACTION") # Начало транзакции
text
# Операции записи/обновления
cursor.execute("UPDATE accounts SET balance = balance - 100 WHERE id = 1")
cursor.execute("UPDATE accounts SET balance = balance + 100 WHERE id = 2")
conn.commit() # Фиксация измененийexcept Exception as e:
conn.rollback() # Откат при ошибке
print(f"Error occurred: {e}")
finally:
conn.close()
text
Для NoSQL (например, MongoDB) транзакции появились в версии 4.0+:
```python
with client.start_session() as session:
session.start_transaction()
try:
db.accounts.update_one({'_id': 1}, {'$inc': {'balance': -100}}, session=session)
db.accounts.update_one({'_id': 2}, {'$inc': {'balance': 100}}, session=session)
session.commit_transaction()
except Exception:
session.abort_transaction()
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы