Топ питань
Часова шкала
Чат
Перспективи
COMMIT (SQL)
З Вікіпедії, вільної енциклопедії
Remove ads
COMMIT (англ. — «здійснювати») — оператор управління мови SQL для успішного завершення транзакції. При виконанні оператора зміни, зроблені від початку транзакції й раніше невидимі для інших транзакцій, фіксуються в базі даних[1].
Для скасування змін транзакції застосовується оператор ROLLBACK. Ці дві інструкції явним чином завершують транзакцію[2].
Oracle
Перед виконанням COMMIT Oracle генерує логи даних скасування (undo) і повторного виконання (redo) (вони можуть бути навіть записані на диск). При виконанні оператора COMMIT таблиці транзакцій redo-записів відзначаються SCN (англ. system change number, «номер зміни системи»), буфери redo-журналу скидаються на диск (на цьому етапі транзакція вважається завершеною), звільняються блокування, а транзакція позначається як завершена[1].
Remove ads
Зауваження щодо використання
Команда COMMIT в обробці транзакцій представляє той момент часу, коли користувач вже вніс необхідні зміни як одну логічну одиницю, а оскільки помилок не сталося, він готовий до збереження результатів своєї роботи. Видачею команди COMMIT в базі даних ще й неявно закривається поточна транзакція та розпочинається нова.
Відкат транзакції виконується не тільки в результаті видачі команди ROLLBACK, а й неявно, коли виконання оператора по тій або іншій причині закінчується невдало або коли користувач скасовує оператор командою CTRL-C.
Рекомендується явно завершувати транзакції в прикладних програмах, використовуючи команди COMMIT WORK (або ROLLBACK WORK). Якщо ви явно не записали транзакцію, а прикладна програма завершилася аварійно, відбудеться відкат останньої не записаної транзакції.
Remove ads
Приклад
Для додавання рядків до таблиці MyTable і збереження зміни введіть наступні команди:
BEGIN TRANSACTION WORK;
INSERT INTO MyTable VALUES ('50', 'some string');
COMMIT WORK;
Примітки
Література
Посилання
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads