Mysql - запустить запланированное событие для всех таблиц, содержащих строку в имени, и удалить старые строки с десятичной датой - PullRequest
0 голосов
/ 17 октября 2018

Что мне нужно: запускать запланированный запрос каждые 24 часа в БД для каждой таблицы, заканчивающейся уникальной строкой, удаляя все строки старше 2 недель.

Моя проблема: я не знаю, какработать только на указанных таблицах.Дата указана в десятичном формате (пример: 1491171709.8371), и я не знаю, жарко ли сократить 2 недели.

Вот что я сделал, и я не знаю, как поступить:

CREATE EVENT clear_tables_data
    ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 24 HOUR
    DO
      SELECT GROUP_CONCAT(t.query SEPARATOR '; ')
        FROM
        (
            SELECT CONCAT('DELETE FROM a.table_name WHERE `submit_time` < ADDDATE(NOW(), INTERVAL -336 HOUR);') AS query,
                '1' AS id
            FROM information_schema.tables a
            WHERE a.table_schema = 'YourDBNameHere'
        ) t
        GROUP BY t.id
...