, если вы хотите заблокировать конкретную строку от редактирования, используйте FOR UPDATE
в конце запроса SELECT. это блокирует строку в вашей транзакции и предотвращает ее обновление другими пользователями. это работает только в транзакционных механизмах хранения, таких как innodb.
в ответ на ваши вопросы, да, блокировки на уровне строк «прекратят редактирование существующих строк, соответствующих вашим критериям». более конкретно, если (внутри транзакции) вы ВСТАВЛЯЕТЕ, ОБНОВЛЯЕТЕ или УДАЛЯЕТЕ строку, эта строка будет заблокирована от редактирования кем-либо еще до того, как ваш COMMIT вашей транзакции если вы ВЫБИРАЕТЕ строку, используя FOR UPDATE
, то это также блокирует строку.
однако, это не «останавливает пользователя, вставляющего строку, соответствующую вашим критериям».