ROLLBACK
ROLLBACK отменяет приватную работу транзакции.
Синтаксис
Заголовок раздела «Синтаксис»ROLLBACK [TRANSACTION]ROLLBACK [TRANSACTION] TO [SAVEPOINT] savepoint_nameОписание
Заголовок раздела «Описание»Обычная форма завершает транзакцию и отменяет всю её работу. ROLLBACK TO отменяет лишь изменения после указанной точки и сохраняет активными транзакцию и саму целевую точку.
Параметры
Заголовок раздела «Параметры»TRANSACTION и SAVEPOINT являются необязательными словами. Имена точек без кавычек не зависят от регистра, имена в кавычках сохраняют регистр.
Результат
Заголовок раздела «Результат»Успех возвращает пустой командный результат. Форма TO сохраняет транзакцию активной, обычная форма завершает её.
Поведение в транзакции
Заголовок раздела «Поведение в транзакции»Перед повторением всей транзакции после serialization conflict, взаимоблокировки или row-lock timeout выполняйте обычный ROLLBACK. В проверенном TCP-контракте после ошибки ограничения транзакция явно сохраняет способность к откату.
Ошибки и ограничения
Заголовок раздела «Ошибки и ограничения»Обычный откат без транзакции и форма TO без живой точки завершаются ошибкой.
Embedded, TCP и CLI версии 1.2 направляют ROLLBACK TO в активную транзакцию
текущего подключения.
ROLLBACK не требует отдельного объектного права и не может отменить транзакцию другого соединения.
CREATE TABLE ref_rollback (id INTEGER PRIMARY KEY);BEGIN;INSERT INTO ref_rollback VALUES (1);ROLLBACK;SELECT id FROM ref_rollback;См. также
Заголовок раздела «См. также»См. Транзакции и конкурентность, SAVEPOINT и RELEASE SAVEPOINT.