блокировка определенной записи в MySQL - PullRequest
0 голосов
/ 01 декабря 2010

Я собираюсь реализовать механизм блокировки записи следующим образом:

Table1:
    Field: "ID" (AutoIncrement, Primary)
    Field: "Name" (Text)
    Field: "More fields..."

Table2:
    Field: "ID" (Unique)

Чтобы заблокировать определенную запись в таблице 1, я создам запись в таблице 2 с тем же идентификатором. Если это создание не удается из-за того, что такая запись уже существует, то запись должна быть заблокирована другим процессом, и я вращаюсь. Если это удастся, у меня есть блокировка и я могу изменить запись. Когда я закончу, я удаляю запись блокировки в Table2.

Мой вопрос заключается в том, является ли это допустимым способом реализации блокировки каждой записи, и если нет, то есть ли такая вещь?

Ура, Чарли.

1 Ответ

1 голос
/ 01 декабря 2010

Вы можете использовать innodb для блокировки на основе строк,
или даже блокировка чтения вместо блокировки другой таблицы
(скорее, чтобы mysql мог обрабатывать состояние гонки)

...