powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Блокировка таблиц не используя LOCK TABLES
13 сообщений из 13, страница 1 из 1
Блокировка таблиц не используя LOCK TABLES
    #33458575
dogma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мой админ утверждает, что можно раздавать привилегии на блокировку таблиц не используя команду LOCK TABLES.
В общем смотрел я в документации и ничего похоже не нашел (плохо искал, ну у меня это обычное дело). Администратор говорит, что Раздавать эту привилегю юзерам опасно, потому, что они могут заблокировать таблицу из которой должны только выберать записи, а ведь блокировка у меня используется только перед добавлением, на довольно продолжительное время. Еще говорит, что сам реализовал подобное(т.е. у юзера имели привилегию SELECT на N-ое кол-во таблиц в базе при этом могли блокировать только < N таблиц ), но только как он это делал мне не сказал, да я и не спрашивал, наверняка не вспомнит.
Можете ли вы мне подсказать как это делается. Если такого не существует или не встречалось в вашей практике, то там и скажите, то за мои t-кол-во лет я такое не встречал :)
...
Рейтинг: 0 / 0
Блокировка таблиц не используя LOCK TABLES
    #33458809
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT ... FOR UPDATES;
...
Рейтинг: 0 / 0
Блокировка таблиц не используя LOCK TABLES
    #33460779
Фотография Dinky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://dev.mysql.com/doc/refman/4.1/en/innodb-locking-reads.html
но тут _все_ селекты должны выполнятся FOR UPDATE, обычные селекты не будут блокированы

а зачем вообщем нужна блокировка?

мутит что-то админ :) к тому же можно создать специального юзера и/или дать права на конкретную таблицу...

--
Dmitry
...
Рейтинг: 0 / 0
Блокировка таблиц не используя LOCK TABLES
    #33460859
dogma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Про For UPDATES я знаю, вот только эту команду можно юзать на таблицах типа InnoDB, а на MyISAM нет. Я использую MyISAM.
Так можно ли как-нибудь дать привилегию на блокировку таблицы именно на таблицу, а не на базу?
...
Рейтинг: 0 / 0
Блокировка таблиц не используя LOCK TABLES
    #33460871
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вы можете объяснить, чего вы хотите добиться?
...
Рейтинг: 0 / 0
Блокировка таблиц не используя LOCK TABLES
    #33462842
Фотография Dinky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dogma
Так можно ли как-нибудь дать привилегию на блокировку таблицы именно на таблицу, а не на базу?
RTFM ;) "To use LOCK TABLES, you must have the LOCK TABLES privilege and the SELECT privilege for the involved tables."
для админа:
http://dev.mysql.com/doc/refman/5.0/en/grant.html

--
Dmitry
...
Рейтинг: 0 / 0
Блокировка таблиц не используя LOCK TABLES
    #33463284
dogma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То, что это команда может использоваться только на таблицах их которых юзер может делать выбору я знаю (читал руководство) и объяснял это админу. Но он похоже слишком упертый или я не прав. Он говорит, что юзер может заблокировать табличку "А" из которой должен делать только выборку. При этом этот же юзер должен блокировать таблицы находящиеся в тойже базе, где и таблица "А".
...
Рейтинг: 0 / 0
Блокировка таблиц не используя LOCK TABLES
    #33463285
dogma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to DocAl
В базе находятся таблицы типа MyISAM.
Так вот - юзер имеет привилегию Select на 15 таблиц из этой базы, при этом он должен блокировать только 3 их них. Как этого добиться?
...
Рейтинг: 0 / 0
Блокировка таблиц не используя LOCK TABLES
    #33463689
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dogmato DocAl
В базе находятся таблицы типа MyISAM.
Так вот - юзер имеет привилегию Select на 15 таблиц из этой базы, при этом он должен блокировать только 3 их них. Как этого добиться?
А зачем нужно вообще блокировать таблицы? и вообще блокировать в Вашем случае?
...
Рейтинг: 0 / 0
Блокировка таблиц не используя LOCK TABLES
    #33465319
dogma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
блокировка используется при добвлении записей.
В таблице есть поле ,котору увеличивается на 1 при добавление каждой записи следующим образом.
дата | счетчик
...
29-12-2005| 567
30-12-2005| 568
31-12-2005| 569
01-01-2006| 1
02-01-2006| 2
.....
29-12-2006| 600
30-12-2006| 601
31-12-2006| 602
01-01-2007| 1
02-01-2007| 2
.....
Т.е. сброс происходит первого числа каждого года
...
Рейтинг: 0 / 0
Блокировка таблиц не используя LOCK TABLES
    #33465328
dogma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Забыл добавить.
Следующее значение инкрементного (если можно так сказать) вычисляется из ризультата запроса Select max(inc_f) from table1.
Т.к. с таблицей работают несколько юзеров одновременно, то существует вероятность внесения записей с одинаковым значением. Чтобы этого не случилось я и делаю блокировку.
...
Рейтинг: 0 / 0
Блокировка таблиц не используя LOCK TABLES
    #33465387
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Э... А в чём глубокий смысл этой денормализации?
...
Рейтинг: 0 / 0
Блокировка таблиц не используя LOCK TABLES
    #33466342
Фотография Dinky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а не проще ли сразу запускать запрос:
UPDATE table SET counter=counter+1 WHERE date=curdate();
безо всякого селекта
--
Dmitry
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Блокировка таблиц не используя LOCK TABLES
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]