Как реализовать частичный откат транзакции (не полный, а до определённой точки)?

Частичный откат транзакции реализуется с помощью механизма точек сохранения (savepoints). Savepoint позволяет установить контрольную точку внутри транзакции, к которой можно откатиться без отмены всей транзакции.

Короткий ответ

Что ответить на собеседовании

Частичный откат транзакции реализуется с помощью механизма точек сохранения (savepoints). Savepoint позволяет установить контрольную точку внутри транзакции, к которой можно откатиться без отмены всей транзакции.

Подробный разбор

Ответ с пояснениями

Частичный откат транзакции реализуется с помощью механизма точек сохранения (savepoints). Savepoint позволяет установить контрольную точку внутри транзакции, к которой можно откатиться без отмены всей транзакции.

Пример на SQL (PostgreSQL):

BEGIN;
-- операции 1
SAVEPOINT sp1;
-- операции 2
-- если нужно откатиться только до sp1
ROLLBACK TO SAVEPOINT sp1;
-- продолжение транзакции
COMMIT;

Таким образом, можно откатить изменения только после savepoint, сохранив предыдущие изменения в рамках одной транзакции.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку