блокировка определенной записи в MySQL

0

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

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

Table2:
    Field: "ID" (Unique)

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

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

Cheers, Чарли.

  • 0
    умные люди в MySQL уже сделали это для вас - это называется механизм транзакций innodb
Теги:
locking
nonblocking

1 ответ

1
Лучший ответ

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

  • 0
    Спасибо, я понятия не имел. Должен иметь RTFM.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню