powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / SELECT FOR UPDATE
2 сообщений из 2, страница 1 из 1
SELECT FOR UPDATE
    #38611762
SerjInsane
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть запрос:
Код: sql
1.
SELECT `phone` FROM `contacts` WHERE `status_id` = 0  LIMIT 1 FOR UPDATE


думал, что с помощью SELECT FOR UPDATE сделаю соответствующую запись недоступной для чтения, но как я понимаю, она таким образом блокируется только для редактирования.

Подскажите, есть ли способы блокирования записи для чтения, чтобы при повторном таком же запросе в результат попала уже другая запись?
...
Рейтинг: 0 / 0
SELECT FOR UPDATE
    #38611766
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть запрос:
Код: sql
1.
SELECT `phone` FROM `contacts` WHERE `status_id` = 0  LIMIT 1 FOR UPDATE


думал, что с помощью SELECT FOR UPDATE сделаю соответствующую запись недоступной для чтения,


Нет, ты сделаешь её недоступной только для записи.



но как я понимаю, она таким образом блокируется только для редактирования.


Для записи, а не для редактирования.


Подскажите, есть ли способы блокирования записи для чтения, чтобы при повторном таком же запросе в результат попала уже другая запись?


Если ВСЕ читатели этой записи будут её читать с FOR UPDATE, то ты получишь желаемый эффект.
При этом естественно надо открывать явную транзакцию и держать её до окончания изменения.
Сессии, которые будут читать её без FOR UPDATE, прочитают старую версию записи.


(Естественно, подразумевается, что таблица сидит под InnoDB, для MyISAM это всё вообще бессмысленно).
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / SELECT FOR UPDATE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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