Основы TCL (Transaction Control Language) операций: COMMIT, ROLLBACK
TCL (Transaction Control Language) — это язык управления транзакциями, который используется для обеспечения целостности данных в базе данных. Основные операции TCL включают COMMIT
и ROLLBACK
, которые управляют транзакциями, позволяя сохранить или откатить изменения, внесённые в ходе выполнения SQL-команд.
Что такое транзакция?
Транзакция — это группа операций SQL, которые выполняются как единое целое. Транзакция либо выполняется полностью, либо не выполняется вообще. Это обеспечивает целостность и согласованность данных в случае возникновения ошибок или сбоев.
COMMIT
Команда COMMIT
используется для фиксации всех изменений, сделанных в рамках текущей транзакции, в базе данных. После выполнения COMMIT
изменения становятся постоянными и видимыми для других пользователей.
Основной синтаксис:
Примеры:
Фиксация изменений:
В этом примере транзакция начинается с BEGIN
(или START TRANSACTION
, в зависимости от СУБД), затем выполняются две операции — обновление и удаление данных. Выполнение COMMIT
фиксирует эти изменения в базе данных.
ROLLBACK
Команда ROLLBACK
используется для отмены всех изменений, сделанных в рамках текущей транзакции. ROLLBACK
возвращает базу данных в состояние, в котором она находилась до начала транзакции, обеспечивая защиту от ошибок.
Основной синтаксис:
Примеры:
Отмена изменений:
В этом примере, если после выполнения операций по обновлению и удалению данных возникнет ошибка или пользователь решит отменить изменения, выполнение ROLLBACK
отменит все внесённые изменения, и база данных вернётся к своему предыдущему состоянию.
SAVEPOINT
Команда SAVEPOINT
позволяет установить точку сохранения внутри транзакции, к которой можно откатиться без отмены всей транзакции.
Основной синтаксис:
Примеры использования SAVEPOINT:
В этом примере устанавливается точка сохранения sp1
. Если после удаления сотрудника пользователь решит отменить только это действие, он может выполнить ROLLBACK TO sp1
, чтобы откатиться к точке сохранения и продолжить транзакцию с момента её создания.
Транзакционная изоляция
Транзакции работают в условиях изоляции, что позволяет им быть независимыми от других транзакций, выполняющихся одновременно. Уровни изоляции (например, READ COMMITTED
, REPEATABLE READ
, SERIALIZABLE
) определяют, как и когда изменения, внесённые в рамках одной транзакции, становятся видимыми для других.
Заключение
COMMIT: Фиксирует все изменения, сделанные в рамках текущей транзакции, делая их постоянными в базе данных.
ROLLBACK: Отменяет все изменения, сделанные в рамках текущей транзакции, возвращая базу данных к её предыдущему состоянию.
SAVEPOINT: Устанавливает точку сохранения внутри транзакции, позволяя откатиться к ней, если необходимо отменить часть изменений.
Использование команд TCL позволяет управлять транзакциями, обеспечивая целостность данных и контролируя, какие изменения должны быть зафиксированы, а какие отменены.
Last updated