Учебники

MariaDB — Сделки

Транзакции — это последовательные групповые операции. Они функционируют как единое целое и не завершаются до тех пор, пока все операции в группе не будут успешно выполнены. Один сбой в группе приводит к сбою всей транзакции и не влияет на базу данных.

Транзакции соответствуют ACID (атомарность, согласованность, изоляция и долговечность) —

  • Атомарность — обеспечивает успех всех операций, прерывая сбои и откатывая изменения.

  • Согласованность — гарантирует, что база данных применяет изменения к успешной транзакции.

  • Изоляция — это позволяет независимой транзакции операции транзакций.

  • Долговечность — обеспечивает постоянство успешной транзакции в случае сбоя системы.

Атомарность — обеспечивает успех всех операций, прерывая сбои и откатывая изменения.

Согласованность — гарантирует, что база данных применяет изменения к успешной транзакции.

Изоляция — это позволяет независимой транзакции операции транзакций.

Долговечность — обеспечивает постоянство успешной транзакции в случае сбоя системы.

Во главе оператора транзакции находится оператор START TRANSACTION, за которым следуют операторы COMMIT и ROLLBACK —

  • START TRANSACTION начинает транзакцию.

  • COMMIT сохраняет изменения в данных.

  • ROLLBACK завершает транзакцию, уничтожая любые изменения.

START TRANSACTION начинает транзакцию.

COMMIT сохраняет изменения в данных.

ROLLBACK завершает транзакцию, уничтожая любые изменения.

В случае успешной транзакции действует COMMIT. В случае сбоя действует ROLLBACK.

Примечание. Некоторые операторы вызывают неявную фиксацию, а также вызывают ошибку при использовании внутри транзакций. Примеры таких утверждений включают, но не ограничиваются CREATE, ALTER и DROP.

Транзакции MariaDB также включают такие опции, как SAVEPOINT и LOCK TABLES. SAVEPOINT устанавливает точку восстановления для использования с ROLLBACK. LOCK TABLES позволяет контролировать доступ к таблицам во время сеансов, чтобы предотвратить изменения в определенные периоды времени.

Переменная AUTOCOMMIT обеспечивает контроль над транзакциями. Установка 1 заставляет все операции считаться успешными транзакциями, а установка 0 заставляет сохранение изменений происходить только в явном операторе COMMIT.

Структура транзакции

Общая структура оператора транзакции начинается с START TRANSACTION. Следующим шагом является вставка одной или нескольких команд / операций, вставка операторов, проверяющих наличие ошибок, вставка операторов ROLLBACK для управления обнаруженными ошибками и, наконец, вставка оператора COMMIT для применения изменений к успешным операциям.

Просмотрите пример, приведенный ниже —