Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: SELECT ... FOR UPDATE

Сообщения:  [1-9] 

 
 автор: cheops   (21.04.2012 в 19:14)   письмо автору
 
   для: Lenny   (21.04.2012 в 19:05)
 

Это уже уровень изоляции транзакций... т.е. делать это нужно не через SELECT-запросы, а через сами транзакции (там довольно строгие уровни, правда не все СУБД поддерживают все уровни и не все СУБД позволяют их настраивать, но у MySQL в этом плане вроде все четко).

  Ответить  
 
 автор: Lenny   (21.04.2012 в 19:05)   письмо автору
 
   для: cheops   (20.04.2012 в 21:23)
 

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

  Ответить  
 
 автор: cheops   (20.04.2012 в 21:23)   письмо автору
 
   для: Lenny   (20.04.2012 в 19:11)
 

А в смысле первый?

  Ответить  
 
 автор: Lenny   (20.04.2012 в 19:11)   письмо автору
 
   для: Lenny   (20.04.2012 в 15:12)
 

Спасибо за ответы.
Еще вопрос
А Существует ли аналогичная блокировка на чтения строки, пока первый не отработал транзакцию?

  Ответить  
 
 автор: cheops   (20.04.2012 в 16:25)   письмо автору
 
   для: Lenny   (20.04.2012 в 15:12)
 

Да, для всех соединений, ну и следует иметь в виду то, что сказал Valick - это строго InnoDB, больше адекватных таблиц с блокировкой на уровне отдельных строк в MySQL нет (официально по-крайней мере).

  Ответить  
 
 автор: Valick   (20.04.2012 в 15:42)   письмо автору
 
   для: Lenny   (20.04.2012 в 15:12)
 

в innoBD блокировка на уровне строк, в данном случае тех которые попадут в выборку SELECT

  Ответить  
 
 автор: Lenny   (20.04.2012 в 15:12)   письмо автору
 
   для: cheops   (20.04.2012 в 14:59)
 

Я так понимаю что блокируется для всех соединений? Если SELECT ... FOR UPDATE из несколько таблиц, все таблицы будут заблокированы?

Спасибо

  Ответить  
 
 автор: cheops   (20.04.2012 в 14:59)   письмо автору
 
   для: Lenny   (20.04.2012 в 13:58)
 

Это для транзакций, т.е. если вы внутри транзакции выполняете SELECT-запрос с данными ключевыми словами, то, изменение запрашиваемых слов будет заблокировано до тех пор, пока не завершиться транзакция. Работает только с InnoDB.

  Ответить  
 
 автор: Lenny   (20.04.2012 в 13:58)   письмо автору
 
 

Здравствуйте!

Мне не понятно как работает конструкция SELECT ... FOR UPDATE
Что именно блокирует FOR UPDATE, до которого момента и для кого.

  Ответить  

Сообщения:  [1-9] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования