Инструкция RELEASE SAVEPOINT
Инструкция RELEASE SAVEPOINT удаляет одну или несколько ранее созданных в текущей транзакции точек сохранения.
RELEASE SAVEPOINT имя_точки_сохранения.
имя точки сохранения
Представляет собой именованную точку сохранения (или описание цели), которая была создана в транзакции ранее, при помощи инструкции SAVEPOINT. Имя точки сохранения должно быть уникальным в пределах транзакции.
Инструкция RELEASE SA VEPOINTиспользуется в транзакции для удаления указанной точки сохранения. Все точки сохранения, которые были созданы после указанной, также будут удалены.
Для иллюстрации работы с точками сохранения в следующем коде мы вставим несколько записей, создадим точку сохранения с именем first_savepoint, а затем удалим ее.
INSERT authors (au_id, au_lname, au_fname, contract)
VALUES (‘111-11-1111’, ‘Rabbit’, ‘Jessica’, 1);
SAVEPOINT first_savepoint;
INSERT authors (au_id, au_lname, au_fname, contract)
VALUES (‘277-27-2777’, ‘Fudd’, ‘E.P.’, 1);
INSERT authors (au_id, au_lname, au_fname, contract)
VALUES (‘366-36-3636’, ‘Duck’, ‘P.J.’, 1);
RELEASE SAVEPOINT first_savepoint;
COMMIT;
В этом примере удаляется точка сохранения firstsavepoint, после чего в таблицу authors вставляются все три записи.
В следующем примере мы выполним те же действия, но используем больше точек сохранения.
INSERT authors (au_id, au_lname, au_fname, contract)
VALUES (‘111-11-1111’, ‘Rabbit’, ‘Jessica’, 1);
SAVEPOINT first_savepoint;
INSERT authors (au_id, au_lname, au_fname, contract)
VALUES (‘277-27-2777’, ‘Fudd’, ‘E.P.’, 1);
SAVEPOINT second_savepoint;
INSERT authors (au_id, au_lname, au_fname, contract)
ALUES (‘366-36-3636’, ‘Duck’, ‘P.J.’, 1);
SAVEPOINT third_savepoint;
RELEASE SAVEPOINT second_savepoint;
COMMIT;
В этом примере при удалении точки сохранения second_savepoint система в действительности удаляет secondsavepoint и thirdsavepoint, поскольку точка thirdsavepoint была создана после secondjsavepoint.
После удаления точки сохранения ее имя можно использовать снова.
Советы и хитрости программирования
Подача инструкции COMMIT или инструкции полного отката ROLLBACK приведет к удалению всех открытых точек сохранения транзакции. Подача инструкции ROLLBACK ТО SAVEPOINT возвращает транзакцию к тому состоянию, в котором она находилась в указанной точке. Поэтому все точки сохранения, объявленные после этой точки, становятся недействительными.
Платформа DB2 полностью поддерживает инструкцию RELEASE SAVEPOINT, а также дополнительное ключевое слово.
RELEASE [TO] SAVEPOINT имя.точки, сохранения
Где:
ТО
Дополнительное ключевое слово, не несущее никаких функций.
Не поддерживается.
Не поддерживается.
Не поддерживается.
Не поддерживается.