Часть 9.1: Команда BEGIN TRANSACTION в базах данных SQLite3 (SQL оператор BEGIN TRANSACTION)

Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3. В этой записи ты познакомишься с командой BEGIN TRANSACTION и с тем, как реализован оператор BEGIN TRANSACTION в базах данных SQLite. Напомню, что команда BEGIN TRANSACTION говорит СУБД о том, что клиент хочет начать транзакцию и при этом СУБД должна изолировать данные, с которыми будет работать пользователь в транзакции. В этой статье мы ознакомимся с синтаксисом команды BEGIN TRANSACTION и некоторыми ее особенностями в SQLite3.

Команда BEGIN TRANSACTION в базах данных SQLite3

Команда BEGIN TRANSACTION в базах данных SQLite3


Синтаксис и использование оператора BEGIN TRANSACTION в SQLite

Рассмотрим первую команду из группы управления транзакциями в SQLite3. Команда BEGIN TRANSACTION в SQLite позволяет начать транзакцию. Давайте рассмотрим синтаксис команды BEGIN TRANSACTION в SQLite3.

Команда BEGIN TRANSACTION в базах данных SQLite

Команда BEGIN TRANSACTION в базах данных SQLite

 

Синтаксис команды BEGIN TRANSACTION в базах SQLite3 довольно прост: сначала идут два ключевых слово BEGIN TRANSACTION, а далее уже идут команды транзакции. Этот синтаксис СУБД SQLite3 позволяет упростить еще сильнее, мы можем не писать ключевое слово TRANSACTION.

SQLite3 позволяет выбрать режим блокировки при выполнении транзакции, для этого используются ключевые слова: DEFERRED, IMMEDIATE, EXCLUSIVE.

Транзакции с режимом DEFERRED в SQLite3 выполняется следующим образом: база данных блокируется на запись при выполнение первого оператора чтения или записи, который находится внутри тела транзакции (после команды BEGIN). При такой блокировки база данных будет доступна другим пользователям только для чтения, но не для записи. Режим DEFERRED является стандартным в SQLite3 и его можно не указывать.

Транзакция с режимом IMMEDIATE. Если мы укажем ключевое слово IMMEDIATE после BEGIN, SQLite3 выполнит блокировку базы данных после ключевого слова BEGIN.

Транзакция в режиме EXCLUSIVE. Если мы напишем ключевое слово EXCLUSIVE между BEGIN и TRANSACTION, то SQLite3 заблокирует базу данных для других пользователей не только на запись, но и на чтение. Блокировка происходит после ключевого слова BEGIN.

Текст комментария: