Spec-Zone .ru
спецификации, руководства, описания, API
|
SAVEPOINTidentifier
ROLLBACK [WORK] TO [SAVEPOINT]identifier
RELEASE SAVEPOINTidentifier
InnoDB
поддерживает SQL-операторы SAVEPOINT
, ROLLBACK TO SAVEPOINT
, RELEASE SAVEPOINT
и дополнительное WORK
ключевое
слово для ROLLBACK
.
SAVEPOINT
оператор устанавливает именованную точку сохранения транзакции с именем
identifier
. Если у текущей транзакции есть точка сохранения с тем же
самым именем, старая точка сохранения удаляется, и новый устанавливается.
ROLLBACK
TO SAVEPOINT
оператор откатывает транзакцию к именованной точке сохранения, не завершая транзакцию.
Модификации, что текущая транзакция, сделанная к строкам после точки сохранения, была установлена, отменяются в
откате, но InnoDB
не выпускает блокировки
строки, которые были сохранены в памяти после точки сохранения. (Для новой вставленной строки информацию о
блокировке переносит ID транзакции, сохраненный в строке; блокировка не отдельно сохранена в памяти. В этом
случае блокировка строки выпускается в отмене.) Точки сохранения, которые были установлены в более позднее время
чем именованная точка сохранения, удаляются.
Если ROLLBACK
TO SAVEPOINT
оператор возвращает следующую ошибку, это означает, что никакая точка сохранения с
указанным именем не существует:
ERROR 1305 (42000): SAVEPOINT identifier
does not exist
RELEASE
SAVEPOINT
оператор удаляет именованную точку сохранения из набора точек сохранения текущей
транзакции. Никакая фиксация или откат не происходят. Это - ошибка, если точка сохранения не существует.
Все точки сохранения текущей транзакции удаляются, если Вы выполняете a COMMIT
, или a ROLLBACK
это не называет точку сохранения.
Новый уровень точки сохранения создается, когда сохраненная функция вызывается, или триггер активируется. Точки сохранения на предыдущих уровнях становятся недоступными и таким образом не конфликтуют с точками сохранения на новом уровне. Когда функция или триггер завершаются, любые точки сохранения, которые это создало, выпускаются, и предыдущий уровень точки сохранения восстанавливается.