Точки сохранения и PSQL
Использование операторов управления транзакциями в PSQL не разрешается, так как это нарушит атомарность оператора, вызывающего процедуру.Но Firebird поддерживает вызов и обработку исключений в PSQL, так, чтобы действия, выполняемые в хранимых процедурах и триггерах, могли быть выборочно отменены без полного отката всех действий в них.Внутренне автоматические точки сохранения используется для:
-
отмены всех действий внутри блока
BEGIN … END
, где происходит исключение; -
отмены всех действий, выполняемых в хранимой процедуре/триггере (или, в случае селективной хранимой процедуры, всех действий, выполненных с момента последнего оператора
SUSPEND
), если они завершаются преждевременно из-за непредусмотренной ошибки или исключения.
Каждый блок обработки исключений PSQL также ограничен автоматическими точками сохранения сервера.
Note
|
Сами по себе блок |