COMMIT (SQL)

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

Для скасування змін транзакції застосовується оператор ROLLBACK. Ці дві інструкції явним чином завершують транзакцію[2].

Oracle

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

Зауваження щодо використання

Команда COMMIT в обробці транзакцій представляє той момент часу, коли користувач вже вніс необхідні зміни як одну логічну одиницю, а оскільки помилок не сталося, він готовий до збереження результатів своєї роботи. Видачею команди COMMIT в базі даних ще й неявно закривається поточна транзакція та розпочинається нова.

Відкат транзакції виконується не тільки в результаті видачі команди ROLLBACK, а й неявно, коли виконання оператора по тій або іншій причині закінчується невдало або коли користувач скасовує оператор командою CTRL-C.

Рекомендується явно завершувати транзакції в прикладних програмах, використовуючи команди COMMIT WORK (або ROLLBACK WORK). Якщо ви явно не записали транзакцію, а прикладна програма завершилася аварійно, відбудеться відкат останньої не записаної транзакції.

Приклад

Для додавання рядків до таблиці 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.

Посилання

  • COMMIT [Архівовано 15 травня 2017 у Wayback Machine.] , Database SQL Reference, Oracle
  • COMMIT, DB2 SQL
  • п
  • о
  • р
SQL
Версії
  • SQL-86
  • SQL-89
  • SQL-92
  • SQL:1999
  • SQL:2003
  • SQL:2006
  • SQL:2008
  • SQL:2011
  • SQL:2016
Ключові слова
  • Alter
  • As
  • Case
  • Commit
  • Create
  • Delete
  • Drop
  • From
  • Group by
  • Having
  • Insert
  • Join
  • Merge
  • Null
  • Order by
  • Prepare[en]
  • Select
  • Truncate
  • Union
  • Update
  • Where
  • With
Пов'язані статті
Частини ISO/IEC SQL
  • Framework
  • Foundation
  • Call-Level Interface[en]
  • Persistent Stored Modules
  • Management of External Data
  • Object Language Bindings[en]
  • Information and Definition Schemas
  • SQL Routines and Types for the Java Programming Language[en]
  • XML-Related Specifications[en]