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;

Примечания

править

Литература

править
  • Джеймс Р. Грофф & Пол Н. Вайнберг & Эндрю Дж. Оппель. Глава 12. Обработка транзакций. § Инструкции COMMIT и ROLLBACK // SQL. Полное руководство = SQL The Complete Reference. — Третье издание. — Вильямс, 2015. — С. 337-339. — 959 с. — (Полный справочник). — ISBN 9785845916549.
  • Кевин Е. Кляйн, Дэниэл Кляйн, Брэнд Хант. COMMIT // SQL: справочник = SQL In A Nutshell. A Desktop Quick Reference. — 3-е изд.. — Символ, 2010. — С. 86-89. — 653 с. — ISBN 9785932861653.
  • 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.

Ссылки

править

📚 Artikel Terkait di Wikipedia

SQL

v04 for the September commit fest . Дата обращения: 6 октября 2008. Архивировано 11 января 2009 года. Fred Zemke. What's new in SQL:2011. — 2012. Архивировано

PostgreSQL

Microsoft Windows. PostgreSQL базируется на языке SQL и поддерживает многие из возможностей стандарта SQL:2011 и ряд возможностей SQL:2016 в части работы с

Rollback

Apress, 2009. — P. 338-339. — ISBN 9781430210160. COMMIT , Database SQL Reference, Oracle COMMIT, DB2 SQL, IBM Простая транзакция базы данных Oracle В статье

Уровень изолированности транзакций

случае вторая транзакция при попытке выполнить COMMIT вызовет сообщение об ошибке и будет отменена. MySQL 8.x декларирует поддержку всех четырёх стандартных

PL/SQL

PL/SQL (Procedural Language / Structured Query Language) — язык программирования, процедурное расширение языка SQL, разработанное корпорацией Oracle.

Savepoint (SQL)

Savepoint (от save point с англ. — «точка сохранения») — оператор языка SQL, который разделяет транзакцию на логические точки сохранения. Также это способ

Truncate (SQL)

TRUNCATE — в языке SQL — операция мгновенного удаления всех строк в таблице. Логически схожа с операцией DELETE без оператора WHERE, но в ситуациях на

H2

ROW_NUMBER() OVER()) Многопоточная обработка запросов Полная поддержка стандарта SQL 2003 Применяется H2, например, в проекте Grails как базовая СУБД для разработки