[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Блокирование запров MySQL скриптом php
Chemist
Уважаемые Знатоки,

Можно ли с помощью php блокировать доступ к базе MySQL пока не выполниться скрипт?
Поясню, я хочу, чтобы во время выполнения большого скрипта вывода/ввода данных в БД никто другой не смог работать с базой в этот момент (их запросы стали бы в очередь и выполнились после полного завершения скрипта). Это надо для вывода отчета на основании данных БД и очистки таблиц от записей. Иначе часть записей, вводимых пользователями в этот момент могут потеряться.

Если такое можно, то с помощью какой функции.

Мне посоветовали разобраться с транзакциями, но че-то никак wacko.gif

Подскажите, плз!!




Спустя 3 часа, 26 минут, 3 секунды (9.01.2009 - 11:55) Chemist написал(а):
Про функции LOCK TABLES/UNLOCK TABLES я уже читал, но не совсем понимаю принцип их работы.

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

1. select (цикл из 20-ти селектов);
2. delete (цикл из 17-ти делейтов);
3. insert (цикл из 17-ти вставок)

И чтобы его оградить надо вставить два действия:

1. LOCK TABLES table_1 READ, table_2 READ, ... , table_20 READ;
2. select (цикл из 20-ти селектов);
3. delete (цикл из 17-ти делейтов);
4. insert (цикл из 17-ти вставок);
5. UNLOCK TABLES;

Это верное предположение или я чего-то напутал/недопонял?
И еще вопрос: какую блокировку лучше ставить READ или WRITE?

Спустя 2 дня, 9 часов, 46 минут, 3 секунды (11.01.2009 - 21:42) Chemist написал(а):
Так какую все-токи блокировку лучше ставить: READ или WRITE? unsure.gif

Спустя 29 минут, 1 секунда (11.01.2009 - 22:11) kirik написал(а):
Chemist а вы внимательно читали то, что дал Sylex? В частности последняя ссылка.
Цитата
Если в потоке возникает блокировка операции READ для некоторой таблицы, то только этот поток (и все другие потоки) могут читать из данной таблицы. Если для некоторой таблицы в потоке существует блокировка WRITE, тогда только поток, содержащий блокировку, может осуществлять операции READ и WRITE на данной таблице. Остальные потоки блокируются.

Выбирайте то, что вам нужно.


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.