2010-12-01 2 views
0

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

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

Table2: 
    Field: "ID" (Unique) 

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

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

Cheers, Charlie.

+0

умные люди в MySQL уже сделал это за вас - это называется транзакционным движком innodb – 2010-12-01 15:51:38

ответ

1

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

+0

Спасибо, я понятия не имел. Должен иметь rtfm. – 2010-12-01 19:36:58

Смежные вопросы