查找每X天将Y天以前的数据从表A移动到历史表B,然后从早于Z天的历史表B中删除数据。
只是探索不同的方法来实现这一点。因此,任何建议都将不胜感激。
变量示例
X-7天
Y-60天
Z-365天
谢谢你

最佳答案

CREATE PROCEDURE prc_clean_tables (Y INT, Z INT)
BEGIN
        BEGIN TRANSACTION;

        DECLARE _now DATETIME;
        SET _now := NOW();

        INSERT
        INTO    b
        SELECT  *
        FROM    a
        WHERE   timestamp < _now - INTERVAL Y DAY;
        FOR UPDATE;

        DELETE
        FROM    a
        WHERE   timestamp < _now - INTERVAL Y DAY;

        DELETE
        FROM    b
        WHERE   timestamp < _now - INTERVAL Z DAY;

        COMMIT;
END

关于sql - 有什么方法可以将超过“Y”天的数据移动到MySQL中的存档/历史记录表中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/808039/

10-10 00:26
查看更多