Files
2023-03-31 11:53:06 +02:00

75 lines
1.9 KiB
SQL

CREATE OR REPLACE PROCEDURE stp_removeOldData(
IN day_keep INT
)
READS SQL DATA
BEGIN
SET @adesso = ADDDATE(CURRENT_TIMESTAMP, INTERVAL -1 SECOND);
SET @dt_min = ADDDATE(CURRENT_TIMESTAMP, INTERVAL -day_keep DAY);
START TRANSACTION;
-- AlarmLog
DELETE
FROM AlarmLog
WHERE DtRif <= @dt_min;
INSERT INTO TaskExec(DtRif, CodTask, Result)
SELECT CURRENT_TIMESTAMP AS DtRif
,'Cleanup AlarmLog' AS CodTask
,CONCAT('Deleted ', CAST(ROW_COUNT() AS NCHAR), ' rows') AS Result;
-- AlarmRec
DELETE
FROM AlarmRec
WHERE DtStart <= @dt_min;
INSERT INTO TaskExec(DtRif, CodTask, Result)
SELECT CURRENT_TIMESTAMP AS DtRif
,'Cleanup AlarmRec' AS CodTask
,CONCAT('Deleted ', CAST(ROW_COUNT() AS NCHAR), ' rows') AS Result;
-- DataLog
DELETE
FROM DataLog
WHERE DtRif <= @dt_min;
INSERT INTO TaskExec(DtRif, CodTask, Result)
SELECT CURRENT_TIMESTAMP AS DtRif
,'Cleanup DataLog' AS CodTask
,CONCAT('Deleted ', CAST(ROW_COUNT() AS NCHAR), ' rows') AS Result;
-- ProdLog
DELETE
FROM ProdLog
WHERE DtRif <= @dt_min;
INSERT INTO TaskExec(DtRif, CodTask, Result)
SELECT CURRENT_TIMESTAMP AS DtRif
,'Cleanup ProdLog' AS CodTask
,CONCAT('Deleted ', CAST(ROW_COUNT() AS NCHAR), ' rows') AS Result;
-- StatusLog
DELETE
FROM StatusLog
WHERE DtRif <= @dt_min;
INSERT INTO TaskExec(DtRif, CodTask, Result)
SELECT CURRENT_TIMESTAMP AS DtRif
,'Cleanup StatusLog' AS CodTask
,CONCAT('Deleted ', CAST(ROW_COUNT() AS NCHAR), ' rows') AS Result;
-- TaskExec
DELETE
FROM TaskExec
WHERE DtRif <= @dt_min;
INSERT INTO TaskExec(DtRif, CodTask, Result)
SELECT CURRENT_TIMESTAMP AS DtRif
,'Cleanup TaskExec' AS CodTask
,CONCAT('Deleted ', CAST(ROW_COUNT() AS NCHAR), ' rows') AS Result;
COMMIT;
-- seleziono risultato
SELECT *
FROM TaskExec
WHERE DtRif > @adesso;
END