LINUX.ORG.RU

mysql и select for update


0

0

Можно ли в mysql заблокировать конкретную строку.
То что таблицу можно заблокировать я знаю, а строку можно ?!!

anonymous

Нашел сам, в mysql есть select for update;

begin;
select a.d from a where a.b=c for update;
update a set a.d=a.d+1 where a.b=c;
commit;

Главное чтобы таблица поддерживала транзакции. InnoDb держит.

anonymous
()
Ответ на: комментарий от anonymous

В чем смысл делать select for update некоторой записи, а потом сразу же update ее же? Сам update замечательно наложит [эксклюзивную] блокировку.

anonymous
()
Ответ на: комментарий от anonymous

Смысл в том что приложение многопоточное отсюда могут возникать различные спецэффекты - такой подход их исключает.

anonymous
()
Ответ на: комментарий от anonymous

Имелось ввиду что насамом деле update не такой как показано тут.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.