sql >> Databasteknik >  >> RDS >> Mysql

Vilka är sätten att flytta data äldre än 'Y' dagar till en arkiv-/historiktabell 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. Fråga om MYSQL PÅ DUBLIKATNYCKELUPPDATERING

  2. Identifierande vs icke-identifierande relationer (igen!!!)

  3. ta bort millisekunder från ett oracle tmstmp-fält

  4. Hur kan jag komma utanför foreach loop-värdet i den här situationen?