Created
February 23, 2017 20:00
-
-
Save wheresjames/410affe55458b950dd3d17ae896f5cf8 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Move rows from one table to backup table | |
DELIMITER $$ | |
DROP PROCEDURE IF EXISTS backup_events_table $$ | |
CREATE PROCEDURE backup_events_table() | |
proc_label:BEGIN | |
SET @oldest = (SELECT `created` FROM events WHERE `created` < DATE_SUB(NOW(),INTERVAL 2 DAY) ORDER BY created ASC LIMIT 1); | |
IF @oldest IS NULL THEN | |
LEAVE proc_label; | |
END IF; | |
set @oldest_day = DATE_FORMAT(@oldest,'%Y-%m-%d'); | |
SET @tbl = CONCAT('events-', @oldest_day); | |
SET @q = CONCAT('CREATE TABLE IF NOT EXISTS `', @tbl, '` LIKE `events`'); | |
PREPARE stmt FROM @q; | |
EXECUTE stmt; | |
SET @q = CONCAT('INSERT INTO `', @tbl, '` SELECT * FROM `events` WHERE DATE_FORMAT(created, "%Y-%m-%d") = "', @oldest_day, '"'); | |
PREPARE stmt FROM @q; | |
EXECUTE stmt; | |
SET @q = CONCAT('DELETE FROM `events` WHERE DATE_FORMAT(created, "%Y-%m-%d") = "', @oldest_day, '"'); | |
PREPARE stmt FROM @q; | |
EXECUTE stmt; | |
END $$ | |
DELIMITER ; | |
# Backup table event | |
CREATE EVENT backup_tables | |
ON SCHEDULE EVERY 24 HOUR | |
DO | |
CALL backup_events_table(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment