![]() |
![]() |
![]() |
BEGIN Начало отложенного транзакционного блока. Синтаксис BEGIN [ WORK | TRANSACTION ] Параметры Необязательные ключевые слова, делающие команду SQL более наглядной. Результаты
Описание По умолчанию транзакции PostgreSQL выполняются в непосредственном режиме (также называемом режимом с автоматической фиксацией). В этом режиме для каждой команды пользователя автоматически создается отдельная транзакция, которая либо автоматически фиксируется в базе данных, либо откатывается в зависимости от результата выполнения команды. Команда BEGIN сообщает серверу о создании транзакцнопного блока в отложенном режиме. В этом режиме команды, передаваемые серверу, сохраняются в очереди до получения сервером команды COMMIT. Также возможен откат транзакции по команде ROLLBACK или при неожиданном отключении пользователя от базы данных. Отложенный режим часто используется при работе с несколькими взаимосвязанными таблицами, а также для повышения общей эффективности операций с базой данных. Выполнение команд в отложенном режиме снижает затраты ресурсов процессора и дискового пространства, поскольку на каждый блок команд используется только одна операция его фиксации. При фиксации транзакции сервер пытается выполнить все обновления, входящие в нее. При отсутствии ошибок обновление проходит успешно, в противном случае весь транзакционный блок откатывается. Пример Следующий код начинает транзакцию и создает таблицу, после чего транзакция фиксируется в базе данных: booktown=# BEGIN WORK; BEGIN booktown=# CREATE TABLE test (id integer, name text); CREATE booktown=# COMMIT WORK; COMMIT |
![]() |
![]() |
![]() |