Commit (SQL)

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая Be nt all (обсуждение | вклад) в 10:37, 16 января 2016 (оставлено согласно Википедия:К удалению/15 января 2016#Commit (SQL)). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску

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

Для отката всей изменений транзакции применяется оператор ROLLBACK.

Oracle

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

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

Рекомендуется явно завершать транзакции в прикладных программах, используя команды COMMIT WORK (или ROLLBACK WORK). Если вы явно не записали транзакцию, а прикладная программа завершилась аварийно, произойдёт откат последней не записанной транзакции.

Пример

Для добавления строки к таблице MyTable и сохранения изменения введите следующие команды:

 BEGIN TRANSACTION WORK;
 INSERT INTO MyTable VALUES ('50', 'some string');
 COMMIT WORK;

Примечания

Литература

  • Gunderloy, M.; Jorden, J.L.; Tschanz, D.W. Mastering Microsoft SQL Server 2005. — Wiley, 2006. — P. 200-201. — ISBN 9780471792239.
  • Darie, C. and Watson, K. The Programmer's Guide to SQL. — Apress, 2008. — P. 271-274. — ISBN 9781430208006.
  • Alapati, S. Expert Oracle Database 11g Administration. — Apress, 2009. — P. 338-339. — ISBN 9781430210160.

Ссылки