Транзакции — это не просто набор операций с базой данных. Это фундаментальная концепция, которая помогает обеспечить целостность данных и правильное выполнение всех изменений. Давайте разберем основные моменты:
1. Что такое транзакция?
Это последовательность операций, выполняемых как одно логическое целое.
Эти операции либо завершаются успешно и сохраняются, либо полностью откатываются в случае сбоя, чтобы сохранить состояние системы в целостности.
BEGIN TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;
UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;
COMMIT; -- изменения сохраняются, если все операции выполнены успешно
2. Управление транзакциями — Для контроля транзакций используются команды BEGIN, COMMIT и ROLLBACK. COMMIT фиксирует изменения, если все операции прошли успешно, а ROLLBACK отменяет изменения, если возникает ошибка.
ROLLBACK; -- отменяет все изменения в текущей транзакции
3. Уровни изоляции: — контролируют, как одна транзакция видит данные, измененные другой. Это помогает регулировать баланс между согласованностью данных и производительностью.
Пример установки уровня изоляции:
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; -- строгий уровень изоляции