LOCK TABLES && Inno DB

m2k

Новичок
LOCK TABLES && Inno DB

LOCK TABLES my_inno_db_tbl
BEGIN

Могу я быть уверен что другой поток не будет работать с my_inno_db_tbl пока я не разлочу таблицу а то мануал меня смутил когда я читал про блокировки в Inno DB объясните пожалуйста.

COMMIT (или ROLLBACK при ошибках)
UNLOCK TABLES
 

m2k

Новичок
Необходимо получать уникальную позицию в группе в зависимости от условий. и потом при добавлении записи в эту таблицу указывать эту позицию. нужно чтобы другой поток после того как узнал позицию не записал свою запись с такой же позицией (поле позиции не может быть UNIQUE) потомучто в некоторых случаях например при изменении позиции оно становится не уникальным на некоторое время пока меняются позиции
 

Апельсин

Оранжевое создание
а зачем смешивать lock tables и транзакции? выберете соответствующий уровень изоляции и используйте одни транзакции.
 

m2k

Новичок
мне нужно блокировать всю таблицу на время вставки или апдейта в ней чтобы никто не мог ни прочитать из неё ни удалить ни вставить ни проапдейдить а транзакции для сохранения целовстности данных чтобы быть уверенным что все запросы выполнились и только тогда записать на диск изменения.

Можно пожалуйстка про уровень изоляции подровней, а то в мане чтото не нашёл.
 

m2k

Новичок
2 Апельсин спасибо почитаю чичас

-~{}~ 29.11.06 19:18:

TRANSACTION ISOLATION LEVEL по умолчанию (REPEATABLE READ)

Пользователь 1: SELECT MAX(p) FROM tbl WHERE p=1 FOR UPDATE
Пользователь 2: SELECT MAX(p) FROM tbl WHERE p=1 FOR UPDATE
Пользователь 1: INSERT INTO tbl (pos) VALUES ($pos)
Пользователь 2: INSERT INTO tbl (pos) VALUES ($pos)
Пользователь 1: COMMIT
Пользователь 2: COMMIT

Получается у Пользователя 1 выберется нормальная позиция предположим 25 соответвенно новая будет 26 а у Пользователя выберется 0 так как записи в этой группе заблокиновары и получется позици 1...а это не то что мне нужно...

Или я не правильно понял?

-~{}~ 29.11.06 23:07:

:)) Разобрался )))

бесконечные циклы и просмотр статусов в пхпмайадмин и пара эксперементов )) всё терь ясна всё лочится всё ожидается пока транзакции проведутся осталось попинать ещё чтоб получше разобратся ))


Всем кто отвечал спасибо большое:)

Апельсин спасибо ))
 
Сверху