MySQL InnoDB блокировка строки - PullRequest
0 голосов
/ 09 февраля 2012

Я работаю с MySQL InnoDB Table. Mysql запросы к базе данных с PHP-скриптом. Когда пользователь выбирает запись в определенной таблице, я хотел бы заблокировать это и разрешить процесс чтения только для другого пользователя. Поэтому я пытаюсь использовать

SELECT * FROM parent WHERE NAME = 'Jones' LOCK IN SHARE MODE; 

Поэтому мой вопрос: когда пользователь B пытается выбрать ту же запись, как узнать, что запись заблокирована, а когда пользователь A пытается обновить запись, как авторизовать эту операцию.

Спасибо за помощь

1 Ответ

2 голосов
/ 09 февраля 2012

Блокировки строк InnoDB предназначены только для временного использования во время транзакции (например, когда вы хотите временно задержать любого, кто пытается просмотреть или изменить строку). Если вы хотите разрешить пользователям вашего приложения «блокировать» записи, блокировка строк не подходит для этой цели. Вместо этого сделайте это на уровне приложения: создайте столбец в таблице, чтобы указать, кто из ваших пользователей заблокировал запись.

...