Блокировка mysql.

bav

Новичок
Блокировка mysql.

Добрый день, вот прочитал многочисленные описания про блокировку таблиц, но так и не понял:
1)Можно ли заблокировать не всю таблицу сразу, а скажем только одну ячейку в ней?
2)Мне нужно прочесть значение переменной из ячейки, увеличить его на 1 и переписать в нее же. Так, чтобы пока все это происходит, никто не мог бы прочесть или записать значение в эту ясейку. Мне вообще для этого нужна блокировка или нет?
 

bav

Новичок
короче, это счетчик, значение читаю--> увеличиваю--> записываю.
 

_RVK_

Новичок
bav
UPDATE .... SET field = field + 1 ......

LOCK TABLE блокирует всю таблицу. Если нужны блокировки на уровне записей используй транзакции.
 

bav

Новичок
Да, так действительно лучше! Спасибо

-~{}~ 27.11.05 00:02:

А вот тогда что, если в один и тот же момент происходит запись и чтение, Mysql сам поставит их в очередь? И если да то кого первым? Р.S. Может мне блокировка и не нужна тогда???
 

bav

Новичок
А ну вообще-то правда ....разнице нет.....так значит если в один момент времени два uploada запустятся , то мускуль их в очередь поставит? Вначале один а потом второй?
 

Steamroller

Новичок
А ну вообще-то правда ....разнице нет.....так значит если в один момент времени два uploada запустятся , то мускуль их в очередь поставит? Вначале один а потом второй?
Если апдейты одной записи - то да, именно в очередь.
 

Фанат

oncle terrible
Команда форума
так значит если в один момент времени два uploada запустятся , то мускуль их в очередь поставит? Вначале один а потом второй?
а ты сам-то как думаешь? у тебя есть другие варианты? может быть, мускуль снесёт базу? Или задумается навечно, как буриданов осёл, какой из инсертов ставить вперёд?
 

bav

Новичок
=)))))Ну вдруг......Я вообще думаю что такая ситуация крайне мало вероятна, что два сценария запустятся одновременно!
 
Сверху