Mysql
 sql >> база данни >  >> RDS >> Mysql

Mysql PHP Cron за актуализиране на потребителски статистики

MySQL решение:

Имате нужда от MySQL event да работи на база време.

Предлагам ви да напишете update изявления въз основа на вашето състояние и свържете същата процедура към програмата за планиране на събития, която искате да стартирате всеки ден.

Можете да го направите по следния начин:.

Пример :

delimiter //
drop event if exists event_scheduling_sample;

create event if not exists event_scheduling_sample
--  on schedule every 86400 second starts 00:00:00
--  at timestamp( adddate( current_date, 1 ),'00:00:00' )
--  on schedule every 1 day 
    --   starts current_timestamp 
    --   ends current_timestamp + interval '5' day
--  on schedule every 1 day 
    --   starts current_timestamp 
    --   ends timestamp( current_date,'23:59:59' )

  on schedule every 1 day 
     starts timestamp( current_date + 1, '00:00:00' )

  comment 'event scheduling sample'
  do
    call db_name.procedure_name_that_updates_the_user_records();
;
//
delimiter ;

Вижте :MySQL:Синтаксис на СЪЗДАВАНЕ НА СЪБИТИЕ

Състоянието по подразбиране на Планировчика на събития е ИЗКЛЮЧЕН.
Трябва да го активирате чрез някой от следните изрази.

SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;
SET GLOBAL event_scheduler = 1;
SET @@global.event_scheduler = 1;

Когато програмата за планиране на събития е ВКЛЮЧЕНА, нишката за планиране на събития е посочена в изхода на SHOW PROCESSLIST като процес на демон и състоянието му е представено, както е показано тук:

mysql> SHOW PROCESSLIST\G
*************************** 1. row ***************************
     Id: 1
   User: root
   Host: localhost
     db: NULL
Command: Query
   Time: 0
  State: NULL
   Info: show processlist
*************************** 2. row ***************************
     Id: 2
   User: event_scheduler
   Host: localhost
     db: NULL
Command: Daemon
   Time: 3
  State: Waiting for next activation
   Info: NULL
2 rows in set (0.00 sec)

След като програмата за планиране на събития е включена, ще видите, че работи.

Вижте :Конфигуриране на MySQL Планировчик на събития




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изчислете разликата във времето между два реда

  2. Spring Mvc Hibernate Encoding/Multi-line import sql

  3. SQL заявка за изчисляване на часовете, прекарани от онзи ден и завършващи на следващия ден

  4. как да изтриете активни записи в базата данни с помощта на код за запалване

  5. mysqli и mysql вмъкват в команди на базата данни