Мне была назначена задача, которая может быть решена путем регулярного перемещения данных из одной таблицы в другую таблицу на сервере MySQL, и я немного перегружен, потому что я все еще новичок в этом и даже не знайте терминологию, над которой я должен смотреть. Я хочу перенести данные из более чем 30 дней в новую таблицу.
Поэтому в основном, я хотел бы, чтобы запрос, подобный приведенному ниже, запускался каждый день в определенное время.
INSERT INTO tableB (columnA, columnB, columnC)
SELECT (columnA, columnB, columnC)
FROM tableA
WHERE created_on < DATE_ADD(curdate(), INTERVAL -30 day);
DELETE FROM tableA
WHERE created_on < DATE_ADD(curdate(), INTERVAL -30 day);
COMMIT;
Итак, мой вопрос: как я могу это настроить?
Решение было опубликовано как комментарий, но в любом случае мне нужно было использовать планировщик событий с чем-то вроде этого:
DELIMITER |
CREATE EVENT archive_old_messages
ON SCHEDULE EVERY 1 DAY STARTS curdate()
DO BEGIN
INSERT INTO tableB (columnA, columnB, columnC)
SELECT (columnA, columnB, columnC)
FROM tableA
WHERE created_on < DATE_ADD(curdate(), INTERVAL -30 day);
DELETE FROM tableA
WHERE created_on < DATE_ADD(curdate(), INTERVAL -30 day);
END |
DELIMITER ;
Я бы предпочел создать здесь SQL-задание и написать свою логику.
С уважением
Абдул