Проверяет знание команд управления транзакциями в SQL для обеспечения целостности данных.
Транзакция — это логическая единица работы, состоящая из одного или нескольких SQL-запросов. Она гарантирует, что либо все операции выполняются успешно, либо ни одна из них не применяется к базе данных. Это ключевой механизм для поддержания целостности данных, особенно в системах с параллельным доступом.
BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
SAVEPOINT after_debit;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
-- Если ошибка при втором обновлении:
ROLLBACK TO SAVEPOINT after_debit;
-- Откатываем только второе обновление
COMMIT; -- Фиксируем первое обновлениеВ этом примере мы сначала снимаем 100 с первого счета, затем пытаемся добавить их на второй. Если второй запрос не удался, мы откатываемся к точке after_debit, отменяя только второе обновление, но сохраняя первое. Затем фиксируем транзакцию.
Команды управления транзакциями необходимы для обеспечения атомарности и согласованности данных. Их следует применять в любых операциях, где требуется гарантия, что изменения либо полностью применены, либо полностью отменены — например, при финансовых переводах, бронировании билетов или обновлении нескольких связанных таблиц.