Введение в стандарты языка баз данных SQL

       

Оператор фиксации транзакции


Синтаксически оператор фиксации транзакции имеет ту же форму, что и аналогичный оператор в языке SQL/89:

<commit statement> ::= COMMIT [ WORK ]

В дополнение к функциональности оператора COMMITSQL/89 по поводу оператора COMMITSQL/92 следует сделать следующие пояснения:

  1. Для каждой временной таблицы T в каждом модуле, ассоциированном с текущей транзакцией, если для таблицы было указано ONCOMMITDELETE, и эта таблица обновлялась при выполнении текущей транзакции, в течении фиксации транзакции выполняется неявный оператор DELETEFROMT.
  2. Проверяются все ранее отложенные ограничения целостности, и если хотя бы одно из них не удовлетворяется, все изменения данных или схемы ликвидируются, и вырабатывается исключительное условие: "откат транзакции по причине нарушения ограничений".
  3. Иначе, изменения, произведенные текущей транзакцией над данными и/или схемой становятся доступными другим транзакциям, и текущая транзакция завершается.



Содержание раздела