sql >> Database >  >> RDS >> Mysql

Wat zijn manieren om gegevens ouder dan 'Y' dagen naar een archief-/geschiedenistabel in MySQL te verplaatsen?

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. Connect DATABASE Fout TYPE:2002:Toestemming geweigerd

  2. mysql-telgroep op volgorde van optimalisatie

  3. FOUT 1045 (28000):Toegang geweigerd voor gebruiker 'root'@'localhost' (met wachtwoord:JA)

  4. GROUP BY-gedrag wanneer er geen aggregatiefuncties aanwezig zijn in de SELECT-component