Меню

Главная
Случайная статья
Настройки
Commit (SQL)
Материал из https://ru.wikipedia.org

COMMIT (с англ.«совершать, фиксировать») — оператор управления транзакциями языка SQL для успешного завершения транзакции. При выполнении оператора изменения, сделанные от начала транзакции и ранее не видимые для других транзакций, фиксируются в базе данных[1].

Для отката всех изменений транзакции применяется оператор ROLLBACK. Эти две инструкции явным образом завершают транзакцию[2].

Содержание

Oracle

Перед выполнением COMMIT Oracle генерирует логи данных отмены (undo) и повторного выполнения (redo) (они могут быть даже записаны на диск). При выполнении оператора COMMIT таблицы транзакций redo-записей отмечаются SCN (англ. system change number, «номер изменения системы»), буферы redo-журнала сбрасываются на диск (на этом этапе транзакция считается завершённой), освобождаются блокировки, а транзакция отмечается как завершённая[1].

Замечания по использованию

Рекомендуется явно завершать транзакции в прикладных программах, используя команды COMMIT WORK или ROLLBACK WORK, в соответствии с первым принципом ACID: транзакция должна быть атомарной. Если явная запись транзакции не была произведена, а прикладная программа завершилась аварийно, СУБД выполнит откат последней незаписанной транзакции.

Пример

Для добавления строки к таблице MyTable и сохранения изменения введите следующие команды:
 BEGIN TRANSACTION WORK;
 INSERT INTO MyTable VALUES ('50', 'some string');
 COMMIT WORK;


Примечания
  1. 1 2 Alapati, 2009.
  2. Грофф, 2015, с. 337.


Литература
  • Джеймс Р. Грофф & Пол Н. Вайнберг & Эндрю Дж. Оппель. Глава 12. Обработка транзакций. § Инструкции COMMIT и ROLLBACK // SQL. Полное руководство = SQL The Complete Reference. — Третье издание. — Вильямс, 2015. — С. 337-339. — 959 с. — (Полный справочник). — ISBN 9785845916549.


Ссылки
Downgrade Counter