Спасите авиакомпанию от банкротства — решите задачу для разработчиков

Знакомы с Python и PostgreSQL? Проверьте, удастся ли вам устранить путаницу с билетами.

Спасите авиакомпанию от банкротства — решите задачу для разработчиков
6
3

Такие штуки надо осуществлять транзакциями — операциями, которые могут выполниться успешно целиком или не выполниться вовсе. Должно быть что‑то вроде:

try:
# Начинаем транзакцию. Важно, чтобы база данных поддерживала транзакции.
db.begin_transaction()

# Запрашиваем базу данных. Что‑то вроде…
ticket = db.execute(SQL-запрос здесь).fetchone()

if ticket:
db.rollback_transaction()
return "Билет не найден"

Всё нормально, осуществляем запись…

except Exception as e:
db.rollback_transaction()
finally
db.end_transaction()

транзакция без изоляции не поможет. Здесь важна блокировка таблицы во время чтения.

Транзакция просто отменить обновление если будет ошибка во время запроса

1