Savepoint (SQL)
- 1 year ago
- 0
- 0
COMMIT (с англ. — «совершать, фиксировать») — оператор управления транзакциями языка SQL для успешного завершения транзакции. При выполнении оператора изменения, сделанные от начала транзакции и ранее не видимые для других транзакций, фиксируются в базе данных .
Для отката всех изменений транзакции применяется оператор ROLLBACK . Эти две инструкции явным образом завершают транзакцию .
Перед выполнением COMMIT Oracle генерирует логи данных отмены (undo) и повторного выполнения (redo) (они могут быть даже записаны на диск). При выполнении оператора COMMIT таблицы транзакций redo-записей отмечаются SCN ( англ. system change number , «номер изменения системы»), буферы redo-журнала сбрасываются на диск (на этом этапе транзакция считается завершённой), освобождаются блокировки, а транзакция отмечается как завершённая .
Рекомендуется явно завершать транзакции в прикладных программах, используя команды COMMIT WORK или ROLLBACK WORK, в соответствии с первым принципом ACID : транзакция должна быть атомарной . Если явная запись транзакции не была произведена, а прикладная программа завершилась аварийно, СУБД выполнит откат последней незаписанной транзакции.
Для добавления строки к таблице MyTable и сохранения изменения введите следующие команды:
BEGIN TRANSACTION WORK;
INSERT INTO MyTable VALUES ('50', 'some string');
COMMIT WORK;