Проверяет понимание вложенных транзакций и использования savepoint в SQL для управления точками сохранения.
Savepoint — это точка сохранения внутри транзакции, к которой можно выполнить частичный откат. В отличие от полноценных вложенных транзакций, которые поддерживаются не всеми СУБД, savepoint позволяет управлять откатом на определённый этап, не затрагивая предыдущие изменения.
BEGIN;
INSERT INTO users (name) VALUES ('Alice');
SAVEPOINT sp1;
INSERT INTO users (name) VALUES ('Bob');
ROLLBACK TO SAVEPOINT sp1;
COMMIT;В этом примере после COMMIT будет добавлена только 'Alice', так как вставка 'Bob' откатилась до savepoint sp1.
Savepoint — это эффективный способ имитации вложенных транзакций в СУБД, где нет нативной поддержки вложенности. Используйте его, когда требуется частичный откат внутри одной транзакции.