Оператор COMMIT в PL/SQL Oracle
Результаты выполнения операторов SQL в Oracle обычно записываются непосредственно в таблицы базы данных. Это так называемая неявная фиксация – автоматическая запись или сохранение результатов выполнения операции.
Но блоку транзакций может потребоваться явная фиксация. В таком случае данные сохраняются с помощью оператора COMMIT. Давайте рассмотрим это на практическом примере:
В таблице Users и Works содержится информация о сотрудниках и их деятельности в компании, и по причине увольнения сотрудника нам нужно удалить информацию, которая связана с этим сотрудником из всех таблиц.
Сейчас мы произвели удаление информации о сотруднике и его деятельности, которая содержится в двух таблицах. А поскольку эти операции связаны с обновлением нескольких таблиц базы данных, то во избежание частичного удаления данных используем блок транзакций.
Если первый оператор DELETE удастся выполнить, а второй – не удастся, результаты удаления не будут зафиксированы (они будут автоматически отменены).
DELETE FROM Users WHERE id_user = 100; DELETE FROM Works WHERE id_user = 100; COMMIT;
Метки: COMMIT, Oracle, Транзакции.