如果你是5.1后的版本的话,可以用event功能,示例如下:检查event功能: mysql> show variables like '%sche%'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | event_scheduler | OFF | +-----------------+-------+ 1 row in set (0.01 sec)启动event功能: mysql> set global event_scheduler =1; Query OK, 0 rows affected (0.00 sec)确定起用event功能后,执行下面的建立event:(只update不insert哦) delimiter // create EVENT my_stat_event ON SCHEDULE EVERY 24 HOUR STARTS concat(date_format(now(),'%Y-%m-%d'),' 23:00:00') on completion preserve ENABLE do begin update order_total a inner join (select company_id, sum(goods_number) as total_count from order_goods group by company_id) b on a.company_id=b.company_id set a.total=b.total_count; end; //执行上面的建立作业后,查看作业的信息: mysql> select * from information_schema.events where event_name='my_stat_event';
一般来说是两种方法。1。 在操作系统层上实现(比较常见,个人也喜欢这种方法) widnows 中的计划任务 或linux上的crontab 2。 如楼上所说的 mysql 5 以上的 mysql event
mysql> show variables like '%sche%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| event_scheduler | OFF |
+-----------------+-------+
1 row in set (0.01 sec)启动event功能:
mysql> set global event_scheduler =1;
Query OK, 0 rows affected (0.00 sec)确定起用event功能后,执行下面的建立event:(只update不insert哦)
delimiter //
create EVENT my_stat_event
ON SCHEDULE
EVERY 24 HOUR
STARTS concat(date_format(now(),'%Y-%m-%d'),' 23:00:00')
on completion preserve ENABLE
do
begin
update order_total a inner join (select company_id, sum(goods_number) as total_count from order_goods group by company_id) b on a.company_id=b.company_id
set a.total=b.total_count;
end;
//执行上面的建立作业后,查看作业的信息:
mysql> select * from information_schema.events where event_name='my_stat_event';
2。 如楼上所说的 mysql 5 以上的 mysql event