Сохранение изменений

Функция

Сохранение (фиксация) в БД изменений, внесенных текущей локальной транзакцией.

Спецификация
   
< сохранение изменений >::=
COMMIT [WORK] [TO SAVEPOINT [имя точки сохранения]] [RELEASE]
Синтаксические правила
  1. COMMIT является сокращенной записью (синонимом) фразы COMMIT WORK.

  2. Если < имя точки сохранения > задается, то оно должно ссылаться на существующую точку сохранения, созданную оператором SET SAVEPOINT.

    commit to savepoint AFTER_SALE;
  3. Фиксация изменений выполняется от

    • начала транзакции (в случае отсутствия предыдущих команд COMMIT TO SAVEPOINT в той же транзакции);

    • нового начала транзакции, установленного после выполнения в текущей транзакции оператора COMMIT TO SAVEPOINT до конца транзакции, если не задана конструкция TO SAVEPOINT;

    • указанной точки сохранения, если < имя точки сохранения > задано;

    • последней определенной точки сохранения, если < имя точки сохранения > в конструкции TO SAVEPOINT не задано (или до начала транзакции в случае отсутствия точек сохранения).

  4. Опции TO SAVEPOINT и RELEASE несовместимы.

Общие правила
  1. После выполнения COMMIT сделанные изменения становятся постоянными и необратимыми.

  2. Установленные во время транзакции блокировки отменяются.

  3. Если команда COMMIT задана без конструкции TO SAVEPOINT, то текущая транзакция неявно завершается и начинается новая транзакция.

  4. Если команда COMMIT задана с конструкцией TO SAVEPOINT, то заданная (или последняя, если < имя точки сохранения > не задано) точка сохранения сохраняется, а все предшествующие ей удаляются.

  5. Если при выполнении COMMIT произошла ошибка, выполняется автоматический ROLLBACK к началу транзакции.

  6. Опция RELEASE заставляет автоматически закрывать все подчиненные курсоры соединения (по умолчанию при подтверждении транзакции все подчиненные курсоры соединения, по которому подана команда COMMIT, остаются в открытом состоянии).