Пример транзакции — создание заказа и резервирование доступного остатка товара. Либо обе операции фиксируются, либо при ошибке обе отменяются.
Приведите пример использования транзакции в базе данных.
Пример транзакции — создание заказа и резервирование доступного остатка товара. Либо обе операции фиксируются, либо при ошибке обе отменяются.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Пример транзакции — создание заказа и резервирование доступного остатка товара. Либо обе операции фиксируются, либо при ошибке обе отменяются.
Внутри BEGIN выполните условное уменьшение остатка WHERE stock >= quantity, проверьте число изменённых строк и создайте заказ. При ошибке — ROLLBACK, при успехе — COMMIT. Для нескольких товаров задайте общий порядок блокировок. Внешнюю отправку события не считайте частью обычной DB-транзакции: сохраните outbox-запись и доставьте её отдельно.