Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Множественное обновление таблицы (Евгений) 04/01/2014 - 20:08:10
      Re: ... обменяю национальность на две судимости (Akina) 04/01/2014 - 22:33:43
      Re: ... обменяю национальность на две судимости (Евгений) 04/01/2014 - 23:17:18
      Re: Методика? есть её у нас... (Akina) 04/01/2014 - 23:46:43
      Re: Методика? есть её у нас... (Евгений) 05/01/2014 - 01:22:33
      Re: Методика? есть её у нас... (Akina) 05/01/2014 - 19:23:23
      Re: Обидно... (Евгений) 05/01/2014 - 20:02:05
      Re: Какой вопрос - такой и ответ. (Akina) 05/01/2014 - 23:25:58
      Re: Какой вопрос - такой и ответ. (Евгений) 06/01/2014 - 17:29:48
      Re: Какой вопрос - такой и ответ. (Akina) 06/01/2014 - 22:38:32

> Original message text:
> From: Евгений - 04/01/2014 - 20:08:10
> Subject:Множественное обновление таблицы
> -----------------
> Здравствуйте! Нужно произвести обновление многих записей одной таблицы. Когда производил это средствами цикла PHP выходило долго и порой не все данные обновлялись.
> Нашел информацию по множественному обновлению одним запросом, сформировал запрос, но данные вообще не обновляются (хоть и запрос выполняется без ошибок).
> Возможно вы натолкнете меня на правильный путь?
>
> Вот код запроса который я формировал:
> UPDATE users SET d2l_rep=CASE WHEN steam_id=76561198100699401 THEN 15 WHEN steam_id=76561198038877638 THEN 18 WHEN steam_id=76561198086741170 THEN 15 WHEN steam_id=76561198083334299 THEN 12 WHEN steam_id=76561198005564667 THEN 13 WHEN steam_id=76561198042284011 THEN 14 WHEN steam_id=76561198094077697 THEN 18 WHEN steam_id=76561198087150269 THEN 11 WHEN steam_id=76561198052823224 THEN 12 WHEN steam_id=76561198107634397 THEN 19 WHEN steam_id=76561198075534649 THEN 10 WHEN steam_id=76561198073823177 THEN 17 WHEN steam_id=76561198033238142 THEN 14 WHEN steam_id=76561197961571210 THEN 16 WHEN steam_id=76561198071119379 THEN 13 WHEN steam_id=76561198052609240 THEN 15 WHEN steam_id=76561198092766371 THEN 12 WHEN steam_id=76561198090268919 THEN 7 WHEN steam_id=76561198108217513 THEN 12 END WHERE steam_id IN (76561198100699401, 76561198038877638, 76561198086741170, 76561198083334299, 76561198005564667, 76561198042284011, 76561198094077697, 76561198087150269, 76561198052823224, 76561198107634397, 76561198075534649, 76561198073823177, 76561198033238142, 76561197961571210, 76561198071119379, 76561198052609240, 76561198092766371, 76561198090268919, 76561198108217513)
>


From: Akina - 04/01/2014 - 22:33:43
Subject:... обменяю национальность на две судимости
-----------------
Не надо "становиться индусом". Надо стараться понимать, что делаешь, почему именно так, и если что-то не так - опять же почему.

Во-первых, либо запрос выполняется с ошибкой, либо данные обновляются. Выполни запрос на консоли сервера - убедишься.
То, что ты пишешь (данные не обновляются, но запрос выполняется без ошибок) - возможно в двух случаях. Первый - запрос выполняется в составе транзакции, которая откатывается позже. Второй - твоё средство просмотра не показывает тебе ошибку.

Во-вторых, уже твоё "порой не все данные обновлялись" изначально наводит на мысль, что верен вариант два. И то, что ты НЕ занялся поиском источника проблемы - это безобразие и бардак. Который тебе сейчас аукнулся.

Да, ПРАВИЛЬНАЯ методика массового обновления такая: создать временную таблицу соответствий для выполнения пакетной корректировки данных, после чего одним запросом корректировку выполнить. Темп-таблица удалится сама после завершения сеанса обмена.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
42992



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |