Unetway

SQLite - Транзакции

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

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

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

Свойства транзакций

Транзакции имеют следующие четыре стандартных свойства, обычно называемые аббревиатурой ACID.

  • Atomicity - обеспечивает успешное завершение всех операций в рабочем модуле; в противном случае транзакция прерывается в момент сбоя, а предыдущие операции возвращаются в прежнее состояние.
  • Consistency - обеспечивает правильное изменение базы данных при успешной транзакции.
  • Isolation - позволяет транзакциям работать независимо друг от друга и прозрачно.
  • Durability - обеспечивает, чтобы результат или эффект совершенной транзакции сохранялся в случае сбоя системы.

Управление транзакциями

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

  • BEGIN TRANSACTION - начать транзакцию.
  • COMMIT - чтобы сохранить изменения, вы также можете использовать команду END TRANSACTION .
  • ROLLBACK - откат изменений.

Команды управления транзакциями используются только с командами DML INSERT, UPDATE и DELETE. Они не могут использоваться при создании таблиц или их удалении, поскольку эти операции автоматически фиксируются в базе данных.

Команда BEGIN TRANSACTION

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

BEGIN;
or 
BEGIN TRANSACTION;

Команда COMMIT

Команда COMMIT - это транзакционная команда, используемая для сохранения изменений, вызванных транзакцией, в базу данных. Команда COMMIT сохраняет все транзакции в базе данных с момента последней команды COMMIT или ROLLBACK.

Ниже приведен синтаксис команды COMMIT.

COMMIT;
or
END TRANSACTION;

Команда ROLLBACK

Команда ROLLBACK - это транзакционная команда, используемая для отмены транзакций, которые еще не были сохранены в базе данных. Команда ROLLBACK может использоваться только для отмены транзакций с момента выдачи последней команды COMMIT или ROLLBACK.

Ниже приведен синтаксис команды ROLLBACK.

ROLLBACK;