我已经分配了一项任务,可以通过定期将数据从一个表移动到MySQL服务器上的另一个表来解决,而且我有点不知所措,因为我还在新的,甚至不知道我应该研究的术语。我想将超过30天的数据迁移到新表中。
所以基本上,我希望在某个指定的时间每天运行一个类似下面的查询。
INSERT INTO tableB (columnA, columnB, columnC)
SELECT (columnA, columnB, columnC)
FROM tableA
WHERE created_on < DATE_ADD(curdate(), INTERVAL -30 day);
DELETE FROM tableA
WHERE created_on < DATE_ADD(curdate(), INTERVAL -30 day);
COMMIT;
所以我的问题是,我该如何设置呢?
答案 0 :(得分:0)
我更喜欢在这里创建SQL作业并编写你的逻辑。
此致
阿都
答案 1 :(得分:0)
该解决方案是作为评论发布的,但无论如何我必须做的是使用事件调度程序,如下所示:
DELIMITER |
CREATE EVENT archive_old_messages
ON SCHEDULE EVERY 1 DAY STARTS curdate()
DO BEGIN
INSERT INTO tableB (columnA, columnB, columnC)
SELECT (columnA, columnB, columnC)
FROM tableA
WHERE created_on < DATE_ADD(curdate(), INTERVAL -30 day);
DELETE FROM tableA
WHERE created_on < DATE_ADD(curdate(), INTERVAL -30 day);
END |
DELIMITER ;