每24小时安排一次MySQL查询;查询表并将结果存储在另一个表中

时间:2015-03-28 21:27:05

标签: mysql sql mysql-event

我需要这个查询:

SELECT ItemID, Price 
        FROM table
        WHERE ItemID = %d
        GROUP BY Price
        ORDER BY COUNT(*) DESC LIMIT 1

- 每天运行一次,并将其结果存储在另一个带有查询时间戳的表中。

有没有办法可以自动查询所有可用的ItemID值?例如,如果有20个ItemID值可用,我需要20个单独的查询。

1 个答案:

答案 0 :(得分:1)

您可以使用mysql事件调度程序。这是一个示例,当前查询将数据插入名为" new_table"的表中,从3月28日凌晨3点开始。

DELIMITER $$

CREATE 
    EVENT `daily_backup` 
    ON SCHEDULE EVERY 1 DAY STARTS '2015-03-28 03:00:00' 
    DO BEGIN

        INSERT INTO new_table (ItemID, Price, Time) 
            SELECT ItemID, Price, NOW()
            FROM table
            WHERE ItemID = %d
            GROUP BY Price
            ORDER BY COUNT(*) DESC LIMIT 1;


    END */$$

您可以对其他查询执行相同的操作;他们可以在END

之前进入同一事件