×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

При отключении обработки cookie наш сайт продолжит функционировать, однако будут использоваться исключительно необходимые технические файлы, без которых работа ресурса невозможна.

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

6.1.45. BEGIN

BEGIN — начало блока транзакции

Синтаксис

BEGIN [ WORK | TRANSACTION ] [ transaction_mode [, ...] ]

где transaction_mode может быть одним из:

    ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED }
    READ WRITE | READ ONLY
    [ NOT ] DEFERRABLE

Описание

BEGIN инициирует блок транзакции, то есть все операторы после команды BEGIN будут выполнены в одной транзакции до тех пор, пока явно не будет выдана команда COMMIT или ROLLBACK. По умолчанию (без BEGIN) Digital Q.DataBase выполняет транзакции в режиме «автоподтверждения» (autocommit), то есть каждый оператор выполняется в своей собственной транзакции, и подтверждение неявно выполняется в конце оператора (если выполнение было успешным, в противном случае выполняется откат).

Операторы выполняются быстрее внутри блока транзакции, потому что запуск/завершение транзакции требует значительных затрат ресурсов CPU и дисковых операций. Выполнение нескольких операторов внутри транзакции также полезно для обеспечения согласованности при внесении нескольких связанных изменений: другие сеансы не смогут видеть промежуточные состояния, в которых еще не выполнены все связанные обновления.

Если указан уровень изоляции, режим чтения/записи или откладываемый режим, новая транзакция будет иметь эти характеристики, как если бы была выполнена команда SET TRANSACTION.

Параметры

WORK
TRANSACTION

Необязательные ключевые слова. Они не оказывают никакого эффекта.

См. SET TRANSACTION для получения информации о значении других параметров этой команды.

Замечания

Команда START TRANSACTION имеет ту же функциональность, что и BEGIN.

Используйте COMMIT или ROLLBACK для завершения блока транзакции.

Выполнение BEGIN, когда уже находитесь внутри блока транзакции, вызовет предупреждающее сообщение. Состояние транзакции не изменится. Чтобы вкладывать транзакции внутри блока транзакции, используйте точки сохранения (см. SAVEPOINT).

По причинам обратной совместимости запятые между последовательными transaction_modes могут быть опущены.

Примеры

Чтобы начать блок транзакции:

BEGIN;

Совместимость

BEGIN является расширением языка Digital Q.DataBase. Он эквивалентен стандартной SQL-команде START TRANSACTION, на справочной странице которой содержится дополнительная информация о совместимости.

Параметр DEFERRABLE (transaction_mode) является расширением языка Digital Q.DataBase.

Кстати, ключевое слово BEGIN используется для другой цели во встроенном SQL. Рекомендуется быть осторожным с семантикой транзакций при переносе приложений баз данных.

Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению