如何将mysql表中的日常记录存储到另一个?

时间:2012-12-18 05:04:34

标签: php mysql

朋友我创建了一个mysql表来获取我网站的页面访问量。 我的桌子就像这样

statistics_table(stat_id,visited_page,visit_count)

每次访问时,visit_count增加1。这非常有效。但现在我需要每天将所有统计信息保存在不同的表中,以用于我的流量监控目的。

如下

2012/12/15-->page1-->100 visits
2012/12/16-->page1-->180 visits
2012/12/17-->page1-->200 visits

因为statistics_table每天递增其值,所以我可以使用

获取每天的访问次数
(2012/12/16-->page1-->visits)-(2012/12/15-->page1-->visits)//80 visits

目前我正在使用另一张具有相同schema+date的表,并使用cron job每天更新它。

有没有办法让这项工作而不是我的方式?我的意思是简单/更好的方式来做这件事。谢谢你的建议。

2 个答案:

答案 0 :(得分:2)

我同意上面的答案,但我建议您使用MySQL事件。有关详细信息,请参阅MySQL手册中的CREATE EVENT

总之,您的活动应该是:

CREATE EVENT myevent
    ON SCHEDULE Every Day
    DO
      INSERT INTO Table_name(stat_id,visited_page,visit_count)
      SELECT stat_id,visited,visit_count_page FROM Exist_Tablename WHERE date_field =          
      DATE_SUB(CURDATE(), INTERVAL 1 DAY);

DELETE FROM Exist_Tablename 
WHERE date_field = DATE_SUB(CURDATE(), INTERVAL 1 DAY);

答案 1 :(得分:0)

您可以使用以下查询语句将数据插入另一个表

INSERT INTO Table_name(stat_id,visited_page,visit_count)
SELECT stat_id,visited,visit_count_page FROM Exist_Tablename WHERE <condition>;

DELETE FROM Exist_Tablename 
WHERE <condition>;

像这样你可以尝试,

这可能对你有所帮助。