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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Как сделалть НЕ паралельность
 
 автор: ASK_EL   (05.09.2008 в 14:46)   письмо автору
 
 

Ситуация такая что в 1 момент времени 2 пользователя могут попытаться списать какоето колличество товара, так вот сперва ижет зелект потом сразу же идет упдэйт! но 2 зелекта выполняются как бы паралельно еще до 1 упдэйта, и получается что они оба уменьшают количество товара и все уходит в минус.
как сделалть так чтобы они работали тока ПОСЛЕДОВАТЕЛЬНО тоесть сперва запросы и обновления 1 пройдут а потом уже 2.
Транзакции попробывал но чтото не помогло!

  Ответить  
 
 автор: mechanic   (05.09.2008 в 15:04)   письмо автору
 
   для: ASK_EL   (05.09.2008 в 14:46)
 

юзать локи таблиц

  Ответить  
 
 автор: ASK_EL   (05.09.2008 в 15:54)   письмо автору
 
   для: mechanic   (05.09.2008 в 15:04)
 

LOCK TABLES блокирует таблицы для текущего потока сервера. UNLOCK TABLES снимает любые блокировки, удерживаемые текущим потоком. Все таблицы, заблокированные в текущем потоке, неявно разблокируются, когда поток выполняет другой оператор LOCK TABLES либо когда закрывается соединение с сервером.

Тоесть если опять к таблице применится LOCK TABLES
то предыдущий слетит?
Тогда как сделалть так что пока запрос и обновление не выполнится никто не мог прочитать?

  Ответить  
 
 автор: Valick   (05.09.2008 в 16:01)   письмо автору
 
   для: ASK_EL   (05.09.2008 в 14:46)
 

Транзакции попробывал но чтото не помогло!
А должны были помочь... тип таблицы у вас какой?
http://webconstructtechnologies.ru/?p=12

  Ответить  
 
 автор: ASK_EL   (05.09.2008 в 17:00)   письмо автору
 
   для: Valick   (05.09.2008 в 16:01)
 

InnoDB

Вроде Решилось просто!
Пока тестится еще, делаю обновление с условием на количество и смотрю сколько строк затронуло изменение.
если 0 то все плохо и возвращаем ошибку.

  Ответить  
 
 автор: mechanic   (05.09.2008 в 20:57)   письмо автору
 
   для: ASK_EL   (05.09.2008 в 17:00)
 

костыль..

  Ответить  
Rambler's Top100
вверх

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