sql >> Database teknologi >  >> RDS >> Mysql

Hvad er måder at flytte data ældre end 'Y' dage til en arkiv-/historiktabel i MySQL?

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


  1. Får alle brugere undtagen administratorer i mange-til-mange forhold

  2. MariaDB introducerer TO_CHAR()

  3. Sådan fejlretter du SQL Server T-SQL i Visual Studio 2012

  4. Hvordan kan jeg vide, hvornår SQL Full Text Index Population er færdig?