П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 176180 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 73015 раз(а).

Учебник HTML.
Просмотров 72705 раз(а).

Руководство по PHP5.
Просмотров 43465 раз(а).

Хостинг через призму DNS.
Просмотров 50039 раз(а).

Подборка текстов стандартных документов.
Просмотров 43698 раз(а).

Учебник PHP - Самоучитель
Просмотров 50011 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 50378 раз(а).

Внешние атаки...
Просмотров 40782 раз(а).

Учебник PHP.
Просмотров 35904 раз(а).

SSI в примерах.
Просмотров 26980 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь




Глава 6. Справочник по языку MySQL
Пред.     След.

6.7. Команды управления транзакциями и блокировками в MySQL
6.7.1. Синтаксис команд BEGIN/COMMIT/ROLLBACK

По умолчанию MySQL работает в режиме autocommit. Это означает, что при выполнении обновления данных MySQL будет сразу записывать обновленные данные на диск.

При использовании таблиц, поддерживающих транзакции (таких как InnoDB, BDB), в MySQL можно отключить режим autocommit при помощи следующей команды:

SET AUTOCOMMIT=0

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

Если необходимо переключиться из режима AUTOCOMMIT только для выполнения одной последовательности команд, то для этого можно использовать команду START TRANSACTION или BEGIN или BEGIN WORK:

START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
UPDATE table2 SET summmary=@A WHERE type=1;
COMMIT;

START TRANSACTION была добавлена в MySQL 4.0.11. Это - рекомендованный способ открыть транзакцию, в соответствии с синтаксисом ANSI SQL.

Отметим, что при использовании таблиц, не поддерживающих транзакции, изменения будут записаны сразу же, независимо от статуса режима autocommit.

При выполнении команды ROLLBACK после обновления таблицы, не поддерживающей транзакции, пользователь получит ошибку (ER_WARNING_NOT_COMPLETE_ROLLBACK) в виде предупреждения. Все таблицы, поддерживающие транзакции, будут перезаписаны, но ни одна таблица, не поддерживающая транзакции, не будет изменена.

При выполнении команд START TRANSACTION или SET AUTOCOMMIT=0 необходимо использовать двоичный журнал MySQL для резервных копий вместо более старого журнала записи изменений. Транзакции сохраняются в двоичном системном журнале как одна порция данных (перед операцией COMMIT), чтобы гарантировать, что транзакции, по которым происходит откат, не записываются. See Раздел 4.9.4, «Бинарный журнал обновлений».

Следующие команды автоматически завершают транзакцию (как если бы перед выполнением данной команды была сделана операция COMMIT ):

КомандаКомандаКоманда
ALTER TABLEBEGINCREATE INDEX
DROP DATABASEDROP TABLERENAME TABLE
TRUNCATE  

Уровень изоляции для транзакций можно изменить с помощью команды SET TRANSACTION ISOLATION LEVEL .... See Раздел 6.7.3, «Синтаксис команды SET TRANSACTION».


Назад Начало Главы Начало Раздела Вперед

Пред. Глава След. Глава
Глава 5. Оптимизация в MySQL Начало Книги Глава 7. Типы таблиц MySQL


Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru