|
|
|
SELECT FOR UPDATE
|
|||
|---|---|---|---|
|
#18+
Есть запрос: Код: sql 1. думал, что с помощью SELECT FOR UPDATE сделаю соответствующую запись недоступной для чтения, но как я понимаю, она таким образом блокируется только для редактирования. Подскажите, есть ли способы блокирования записи для чтения, чтобы при повторном таком же запросе в результат попала уже другая запись? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2014, 19:45:09 |
|
||
|
SELECT FOR UPDATE
|
|||
|---|---|---|---|
|
#18+
Есть запрос: Код: sql 1. думал, что с помощью SELECT FOR UPDATE сделаю соответствующую запись недоступной для чтения, Нет, ты сделаешь её недоступной только для записи. но как я понимаю, она таким образом блокируется только для редактирования. Для записи, а не для редактирования. Подскажите, есть ли способы блокирования записи для чтения, чтобы при повторном таком же запросе в результат попала уже другая запись? Если ВСЕ читатели этой записи будут её читать с FOR UPDATE, то ты получишь желаемый эффект. При этом естественно надо открывать явную транзакцию и держать её до окончания изменения. Сессии, которые будут читать её без FOR UPDATE, прочитают старую версию записи. (Естественно, подразумевается, что таблица сидит под InnoDB, для MyISAM это всё вообще бессмысленно). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2014, 19:50:33 |
|
||
|
|

start [/forum/topic.php?fid=47&tid=1834997]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 310ms |

| 0 / 0 |
