Commit (SQL)

Материал из Википедии — свободной энциклопедии
Версия от 11:25, 7 августа 2023; imported>AbiyoyoBot (Ссылки: обработка шаблонов о необходимых доработках, форматирование дат)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

COMMIT (Шаблон:Tr-en) — оператор управления транзакциями языка SQL для успешного завершения транзакции. При выполнении оператора изменения, сделанные от начала транзакции и ранее не видимые для других транзакций, фиксируются в базе данныхШаблон:Sfn.

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

Oracle

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

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

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

Пример

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

<source lang="sql">

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

</source>

Примечания

Шаблон:Примечания

Литература

Ссылки

Шаблон:Databases Шаблон:Нет источников