Часть 9.2: Команда COMMIT в базах данных SQLite (оператор COMMIT в SQLite3)

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

Команда COMMIT в базах данных SQLite (оператор COMMIT в SQLite3)

Команда COMMIT в базах данных SQLite (оператор COMMIT в SQLite3)


Команда COMMIT в базах данных SQLite (оператор COMMIT в SQLite3)

Рассмотрим вторую команду управления транзакциями в базах данных SQLite. COMMIT TRANSACTION в SQLite3 позволяет подтвердить операции, выполненные внутри транзакции. Хочу обратить ваше внимание, что SQL предложение, содержащее команду BEGIN и предложение, содержащее команду COMMIT – это две разных команды для СУБД, между которыми может быть множество запросов к базе данных распределенных во времени. Оператор COMMIT в базах данных SQLite подтверждает изменения, внесенные транзакцией. Давайте взглянем на синтаксис команды COMMIT в SQLite3. Хотя я и использую термин оператор, вместо команда, позволю напомнить, что SQL операторы и команды — это разные языковые конструкции.

Синтаксис команды COMMIT в базах данных SQLite

Синтаксис команды COMMIT в базах данных SQLite

Синтаксис оператора COMMIT TRANSACTION в SQLite3 очень прост: ключевое слово COMMIT, которое можно заменить словом END, за которым идет ключевое слово TRANSACTION. SQLite3 позволяет не писать ключевое слово TRANSACTION. Давайте посмотрим на примере работу команды COMMIT TRANSACTION в базах данных SQLite3.

Пример использования оператора COMMIT в базах данных SQLite

Для примера работы COMMIT TRANSACTION в SQLite3 мы будем использовать базу данных world.db. Совет: если вы самостоятельно будете повторять пример, то выполняйте все команды по очереди, а не копируйте весь листинг целиком.

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

По сути, пока вы не выполните команду COMMIT, SQLite3 не внесет ни одного изменения в базу данных (не выполнит ни одну команду после оператора BEGIN). Как только вы сказали SQLite COMMIT, все изменения будут выполнены.

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