Как сделать поле в MySQL, которое автоматически обновляется каждые сутки?

Тема в разделе "Базы данных", создана пользователем verfaa, 27 май 2012.

Модераторы: latteo
  1. verfaa

    verfaa

    Регистр.:
    29 янв 2007
    Сообщения:
    371
    Симпатии:
    41
    Всем привет, подскажите, как сделать поле в MySQL, которое автоматически обновляется до определённого значения каждые сутки?
    Т.е. например в полночь в 0 часов 00 минут поле автоматически устанавливалось бы в значение 500. На протяжении следующих 24 часов я бы уменьшал и увеличивал из PHP это значение, но в следующие 0 часов 00 минут оно опять устанавливалось в значение 500.

    И какую нагрузку на БД будет давать такая операция? Т.е. например, если в таблице 400.000 юзеров и для каждого нужно иметь пару полей с такими значениями. Реально сделать такой функционал и как? Подскажите пожалуйста.
     
  2. PapaJoe

    PapaJoe

    Регистр.:
    4 авг 2008
    Сообщения:
    620
    Симпатии:
    311
    вполне можно сделать реализацию на php(или любой скриптовый язык)+cron, а средствами только БД, по-моему, сделать не получится

    хотя в новых версиях mysql есть такая штука: Event Scheduler сам не пробовал, но есть доки: http://dev.mysql.com/doc/refman/5.1/en/events.html
     
    pavlin нравится это.
  3. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    может в самом запросе реализовать изменение по какой-то формуле в зависимости от времени, например
    Код:
    SELECT original_value, original_value - HOUR(NOW( )) * original_value/24 AS fixed_original_value
    
    и если original_value это 500 то fixed_original_value будет зависеть от часа когда сапустится запрос, для 10 часов будет 291.6667, округлить можно с ROUND
    0ч - 500
    10ч - 292
    15ч - 188
    23ч - 23
    можно использовать в insert или update запросах и не надо будет всем сразу юзерам расчитывать, а например активным, так же можно и в php переделать расчёт по формуле.