Старый 16.07.2011, 21:49   #1
Эксперт
 
Аватар для a112
 
Регистрация: 17.11.2009
Адрес: Донбасс
Сообщений: 1,481
Вес репутации: 233
a112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущее
По умолчанию Вопрос к знатокам MySQL

Собственно вопрос таков. Как сделать такую штуку:
Есть у меня колонка "priseMax" и колонка "prise".
Мне нужно средствами MySQL 1 раз в час добавлять ко всем значениям в колонке "prise" единицу. И добавлять до тех пор, покуда значения в колонке "prise" не станут равным значениям в колонке "priseMax".
Может функция какая-то есть, или ещё что-то.
a112 вне форума   Ответить с цитированием
Старый 16.07.2011, 22:13   #2
Мастер
 
Аватар для boolevar
 
Регистрация: 02.08.2007
Сообщений: 668
Вес репутации: 241
boolevar - прекрасное будущееboolevar - прекрасное будущееboolevar - прекрасное будущееboolevar - прекрасное будущееboolevar - прекрасное будущееboolevar - прекрасное будущееboolevar - прекрасное будущееboolevar - прекрасное будущееboolevar - прекрасное будущееboolevar - прекрасное будущееboolevar - прекрасное будущее
По умолчанию

Средствами MYSQL никак.
Нужен Cron, PHP и команда INsert
boolevar вне форума   Ответить с цитированием
Старый 16.07.2011, 22:45   #3
Серьезный бизнес.
 
Аватар для Jimi Dini
 
Регистрация: 07.03.2008
Адрес: localhost
Сообщений: 2,254
Вес репутации: 318
Jimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущее
Отправить сообщение для Jimi Dini с помощью ICQ
По умолчанию

добавляешь еще одну колонку. lastupdate bigint

php
mysql_query("update TABLEENAME set prise=prise+1, lastupdate=".time()." where prise<priseMax and lastupdate<".(time()-3600));

скрипт можно запускать хоть каждую секунду
хотя конечно крон был бы предпочтительнее
__________________
qwsa.ru - подъем по НЧ и СЧ, ускорение индексации
подписка на список прокси - prxy.ru
aswq.ru - обучение вебмастеров
Jimi Dini вне форума   Ответить с цитированием
Старый 17.07.2011, 03:41   #4
Эксперт
 
Аватар для a112
 
Регистрация: 17.11.2009
Адрес: Донбасс
Сообщений: 1,481
Вес репутации: 233
a112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущее
По умолчанию

Не-не, на пхп и я знаю как. Средствами мускуля нужно. В мускуле своих функций тоже дохрена, можно внутри мускуля считать, сравнивать и тд., а пыхом только выводить Ну не суть.
Вот нарыл:
Код:
CREATE EVENT myevent
   ON SCHEDULE EVERY 1 HOUR STARTS CURRENT_TIMESTAMP  
 DO UPDATE baza.tablica SET prise = prise + 1
только как туда добавить условие, чтобы не переваливало за priseMax - непонятно

Добавлено через 1 час 14 минут
Ага, а чтоб работало нужно сначало включить планировщик:
SET GLOBAL event_scheduler = ON;
Вот, статейка, кому интересно
http://www.opennet.ru/docs/RUS/mysqlpro/events.html

Последний раз редактировалось a112; 17.07.2011 в 03:43. Причина: Добавлено сообщение
a112 вне форума   Ответить с цитированием
Старый 17.07.2011, 03:50   #5
Новичок
 
Аватар для contentsys
 
Регистрация: 27.01.2009
Адрес: Earth
Сообщений: 41
Вес репутации: 185
contentsys скоро станет известен
По умолчанию

Цитата:
Сообщение от a112 Посмотреть сообщение
\Средствами мускуля нужно. В мускуле своих функций тоже дохрена, можно внутри мускуля считать, сравнивать и тд., а пыхом только выводить Ну не суть.
Вот нарыл:
Код:
CREATE EVENT myevent
   ON SCHEDULE EVERY 1 HOUR STARTS CURRENT_TIMESTAMP  
 DO UPDATE baza.tablica SET prise = prise + 1
только как туда добавить условие, чтобы не переваливало за priseMax - непонятно
Ого, до чего техника дошла
contentsys вне форума   Ответить с цитированием
Старый 17.07.2011, 03:51   #6
Серьезный бизнес.
 
Аватар для Jimi Dini
 
Регистрация: 07.03.2008
Адрес: localhost
Сообщений: 2,254
Вес репутации: 318
Jimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущее
Отправить сообщение для Jimi Dini с помощью ICQ
По умолчанию

статья отличная, но через скрипт проще и работает везде
__________________
qwsa.ru - подъем по НЧ и СЧ, ускорение индексации
подписка на список прокси - prxy.ru
aswq.ru - обучение вебмастеров
Jimi Dini вне форума   Ответить с цитированием
Старый 17.07.2011, 04:43   #7
Эксперт
 
Аватар для a112
 
Регистрация: 17.11.2009
Адрес: Донбасс
Сообщений: 1,481
Вес репутации: 233
a112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущееa112 - прекрасное будущее
По умолчанию

Цитата:
Сообщение от Jimi Dini Посмотреть сообщение
статья отличная, но через скрипт проще и работает везде
А если нужно обновлять по 1000+ значений в нескольких таблицах каждые несколько секунд? Задрочит ведь базу

Добавлено через 29 минут
Код:
CREATE EVENT myevent  
ON SCHEDULE EVERY 1 HOUR STARTS CURRENT_TIMESTAMP 
DO SELECT prise,  priseMax FROM baza.tablica, 
DO IF
(prise <= priseMax, DO UPDATE baza.tablica SET prise = prise + 1, DO UPDATE baza.tablica SET prise = prise + 0)
должно поидее как-то так работать, но почему-то не нравится мускулю мой DO IF, пишет ошибку на 4 строке
Пойду спать, а то голову сломаю

Добавлено через 2 минуты
Цитата:
Сообщение от contentsys Посмотреть сообщение
Ого, до чего техника дошла
Ага, лет 5 назад как дошла, а мы и по сей день юзаем мускуль только на селект, инсёрт и апдейт
Это как купить комп за 10к зелени и играть на нём в сапёра

Последний раз редактировалось a112; 17.07.2011 в 04:43. Причина: Добавлено сообщение
a112 вне форума   Ответить с цитированием
Старый 17.07.2011, 05:04   #8
Новичок
 
Аватар для contentsys
 
Регистрация: 27.01.2009
Адрес: Earth
Сообщений: 41
Вес репутации: 185
contentsys скоро станет известен
По умолчанию

Цитата:
Сообщение от a112 Посмотреть сообщение
Ага, лет 5 назад как дошла, а мы и по сей день юзаем мускуль только на селект, инсёрт и апдейт
Это как купить комп за 10к зелени и играть на нём в сапёра
Да да
contentsys вне форума   Ответить с цитированием
Старый 17.07.2011, 06:30   #9
Серьезный бизнес.
 
Аватар для Jimi Dini
 
Регистрация: 07.03.2008
Адрес: localhost
Сообщений: 2,254
Вес репутации: 318
Jimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущееJimi Dini - прекрасное будущее
Отправить сообщение для Jimi Dini с помощью ICQ
По умолчанию

Цитата:
Сообщение от a112 Посмотреть сообщение
А если нужно обновлять по 1000+ значений в нескольких таблицах каждые несколько секунд? Задрочит ведь базу
это сработает не на всех хостингах
и версия mysql Должна быть не ниже 5й.

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

посему есть универсальное решение, и есть хостингозависимое.

и да, типа эвент в текстовом виде, хранимый в базе, базу не задрочит?
хехехе.

единственное, на чем экономия - это на коннекте к базе данных.
а остальное - под вопросом. возможно, хранения эвента в базе не сильно хорошо с точки зрения производительности.
__________________
qwsa.ru - подъем по НЧ и СЧ, ускорение индексации
подписка на список прокси - prxy.ru
aswq.ru - обучение вебмастеров

Последний раз редактировалось Jimi Dini; 17.07.2011 в 06:38.
Jimi Dini вне форума   Ответить с цитированием
Старый 17.07.2011, 11:52   #10
Новичок
 
Аватар для contentsys
 
Регистрация: 27.01.2009
Адрес: Earth
Сообщений: 41
Вес репутации: 185
contentsys скоро станет известен
По умолчанию

Цитата:
Сообщение от Jimi Dini Посмотреть сообщение
единственное, на чем экономия - это на коннекте к базе данных.
а остальное - под вопросом. возможно, хранения эвента в базе не сильно хорошо с точки зрения производительности.
Да просто каждый производитель софта (того же MySQL'a, например), языков программирования и прочей хрени, желает выпендриться, набить цену, создавая такие редко используемые навороты.

В итоге студенты в вузах тратят 5 лет на изучение всего этого г*на, хотя в действительности для большинства задач (в том числе инновационных) хватит 1-2 книжек, прочтенных за 1-2 ночи

Добавлено через 3 минуты
Цитата:
Сообщение от Jimi Dini Посмотреть сообщение

и да, типа эвент в текстовом виде, хранимый в базе, базу не задрочит?
хехехе.
Кстати да. База сама хранится в файлах, и какая разница, по чьей команде будут высчитываться и записываться данные?

Последний раз редактировалось contentsys; 17.07.2011 в 11:52. Причина: Добавлено сообщение
contentsys вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос к знатокам ПС про favicon.ico Lenka Курилка 4 31.12.2010 14:24
Вопрос знатокам Друпала magura888 Разработка и сопровождение сайтов 0 01.10.2010 13:34
Вопрос к знатокам Wordpress. nikonoff Курилка 5 19.07.2010 13:16
Вопрос знатокам джумле Piratseo Разработка и сопровождение сайтов 7 18.03.2010 16:52
Фон страницы и css - вопрос к знатокам Globalzru Разработка и сопровождение сайтов 18 13.12.2009 19:09


Часовой пояс GMT +3, время: 13:14.