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


Управление транзакциями


На неформальном уровне мы кратко обсудили возможности управления транзакциями, поддерживаемые в стандарте SQL/92, в п.3.1.4. В этом разделе будут приведены синтаксические определения операторов управления транзакциями и соответствующие пояснения.

3.7.1. Оператор установки параметров транзакции

Оператор SETTRANSACTION служит для задания параметров следующей транзакции для данного SQL-агента. Оператор определяется следующими синтаксическими правилами:

<set transaction statement> ::= SET TRANSACTION <transaction mode> [ { <comma> <transaction mode> }... ] <transaction mode> ::= <isolation level> | <transaction access mode> | <diagnostics size> <isolation level> ::= ISOLATION LEVEL <level of isolation> <level of isolation> ::= READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE <transaction access mode> ::= READ ONLY | READ WRITE <diagnostics size> ::= DIAGNOSTICS SIZE <number of conditions> <number of conditions> ::= <simple value specification>

Пояснения:

  1. Если уровень изоляции не специфицирован, то неявно полагается заданным уровень изоляции SERIALIZABLE.
  2. Если специфицирован режим доступа READWRITE, то уровень изоляции не должен быть READUNCOMMITTED.
  3. Если неспецифицирован режим доступа транзакции и указан уровень изоляции READUNCOMMITTED, то неявно полагается заданным режим доступа READONLY; в противном случае неявно полагается заданным режим доступа READWRITE.
  4. Попытка выполнения оператора SETTRANSACTION в активной транзакции приводит к возбуждению исключительной ситуации.
  5. Пусть TXN обозначает следующую транзакцию данного SQL-агента.
  6. Режим доступа TXN устанавливается в соответствии со спецификациями, заданными в операторе SETTRANSACTION.
  7. Уровень изоляции TXN устанавливается в зависимости от реализации, но таким образом, чтобы не проявлялись эффекты, которые не должны проявляться на уровне изоляции, явно или неявно задаваемом оператором SETTRANSACTION.
  8. Размер области диагностики TXN устанавливается в соответствии с параметром <numberofconditions>, если он задан; в противном случае размер области диагностики зависит от реализации, но должен быть не меньше того, который был бы выделен при явном задании числа условий равного единице.




- Начало -  - Назад -  - Вперед -



Книжный магазин