SQL transaktsioonid

Транзакция – это последовательность операций, выполняемых в логическом порядке пользователем, либо программой, которая работает с БД.

Транзакция – это распространение изменений в БД. Например, если мы создаём, изменяем или удаляем запись, то мы выполняем транзакцию. Крайне важно контролировать транзакции для гарантирования.

Основные концепции транзакции описываются аббревиатурой ACID

  • Atomicity – Атомарность
  • Consistency – Согласованность
  • Isolation – Изолированность
  • Durability – Долговечность

Атомарность

Это гарантирует, что транзакция будет выполнена полностью или не выполнится вовсе. Если одна из операций не удалась, вся транзакция отменяется. Это называется «откат» (rollback). То есть изменения, сделанные в процессе, не сохраняются, и пользователь не увидит никаких изменений.


Согласованность

это когда после транзакции всё в системе остаётся правильно. Например, если деньги ушли с одного счёта, они должны прийти на другой. Если что-то пошло не так, система не должна «потерять» деньги. Важно, чтобы данные всегда оставались точными и логичными.


Изолированность

Каждая транзакция должна выполняться отдельно, независимо от других. То есть параллельные транзакции не должны мешать друг другу. На практике это сложно, поэтому используются разные уровни изолированности — когда изоляция может быть не полной, но достаточной для надёжной работы.


Долговечность

Это означает, что если транзакция завершилась успешно, её результат не должен пропасть, даже если случится сбой, например, отключится электричество. Изменения сохраняются надёжно.


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

  • COMMIT
    Сохраняет изменения
  • ROLLBACK
    Откатывает (отменяет) изменения
  • SAVEPOINT
    Создаёт точку к которой группа транзакций может откатиться
  • SET TRANSACTION
    Размещает имя транзакции.

ROLLBACK:

XAMPPIS

salvestame transaktsiooni

kustutame 1.rida ja votame tagasi

uuendame terve tabeli ja si=5 ja votame tagasi

savepoint