MySQL-在名称中包含字符串的所有表上运行计划的事件,并删除带有十进制日期的旧行

时间:2018-10-17 10:23:38

标签: mysql events schedule

我需要什么: 每隔24小时在数据库中的每个表上运行计划查询,该表以唯一字符串结尾,删除所有早于2周的行。

我的问题: 我不知道如何只在指定的表上运行。 日期以十进制表示(例如:1491171709.8371),我不知道hot会减少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

0 个答案:

没有答案