Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Запуск транзакции

Что такое условная логика? | Выражение case | Простые выражения case | Gt; FROM account | Селективная агрегация | Проверка существования | Ошибки деления на нуль | Условные обновления | Обработка значений Null | Многопользовательские базы данных |


Читайте также:
  1. Автомат запуска
  2. Выпуск голубей, запуск шаров, запуск сердца и открыток с пожеланиями
  3. Выпуск голубей, запуск шаров, запуск сердца и открыток с пожеланиями
  4. Завершение транзакции
  5. Запуск аплетов
  6. Запуск горелки
  7. Запуск горелки в составе водогрейного котла

 

Серверы БД обрабатывают создание транзакций одним из двух воз_ можных способов:

 

• Активная транзакция всегда присутствует для каждого сеанса ра_ боты с БД, поэтому нет ни необходимости, ни способа для явного


 

234 Глава 12. Транзакции

начала транзакции. По завершении транзакции сервер автоматиче_ ски начинает новую транзакцию для сеанса пользователя.

 

• Если транзакция не начата явно, отдельные SQL_выражения фик_ сируются автоматически независимо друг от друга. Чтобы начать транзакцию, сначала нужно запустить на выполнение команду.

 

Из трех рассматриваемых серверов первый подход использует Oracle Database, а Microsoft SQL Server и MySQL – второй. Одно из преиму_ ществ подхода Oracle к обработке транзакций в том, что даже в случае одиночной SQL_команды есть возможность сделать откат, если пользо_ вателя не удовлетворяет результат или он изменил свое мнение. Таким образом, если вы забудете вставить блок where в выражение delete, ос_ танется возможность отменить неверные действия (разумеется, только если вы осознаете, допив свой утренний кофе, что не хотели удалять все 125 000 строк своей таблицы)). Однако при работе с MySQL и SQL Server, как только нажата клавиша Enter, изменения, осуществленные SQL_выражением, становятся постоянными (и тогда только админист_ ратор БД сможет восстановить исходные данные из резервной копии или какими_либо иными средствами).

 

Стандарт SQL:2003 включает команду start transaction (запустить транзакцию), предназначенную для явного начала транзакции. MySQL соответствует этому стандарту, а пользователи SQL Server должны вы_ зывать команду begin transaction (начать транзакцию). Для обоих сер_ веров, пока транзакция не начата явно, все операции выполняются в режиме автоматической фиксации (autocommit mode), т. е. сервер автоматически фиксирует отдельные выражения. Следовательно, мож_ но принять решение об использовании транзакций и выполнить ко_ манду запустить/начать транзакцию или просто позволить серверу фиксировать отдельные выражения.

 

Оба сервера, MySQL и SQL Server, позволяют отключать режим авто_ матической фиксации для отдельных сеансов. В этом случае серверы будут вести себя в отношении транзакций точно так же, как Oracle Da_ tabase. В SQL Server для отключения режима автоматической фикса_ ции служит следующая команда:

 

SET IMPLICIT_TRANSACTIONS ON

MySQL позволяет отключить режим автоматической фиксации так:

 

SET AUTOCOMMIT=0

 

Если режим автоматической фиксации выключен, все SQL_команды выполняются в рамках транзакции, и их фиксацию или откат следует выполнять явно.


 

Рекомендация: при каждом входе в систему следует отключать режим автоматической фиксации. Выполнение всех SQL_выра_ жений в рамках транзакции должно войти в привычку. По край_


 

Что такое транзакция?  
   

 

ней мере, это поможет вам избежать унизительной необходимо_ сти просить администратора БД восстановить уничтоженные по неосторожности данные.

 


Дата добавления: 2015-08-17; просмотров: 43 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Что такое транзакция?| Завершение транзакции

mybiblioteka.su - 2015-2024 год. (0.006 сек.)