代码之家  ›  专栏  ›  技术社区  ›  Hellpless

mysql-对名称中包含字符串的所有表运行调度事件,并删除带有十进制日期的旧行

  •  0
  • Hellpless  · 技术社区  · 8 年前

    我需要的是: 每24小时在数据库中对每个以唯一字符串结尾的表运行一次计划查询,删除所有超过2周的行。

    我的问题: 我不知道如何只在指定的表上运行。 日期是十进制的(例如:149171709.8371),我不知道hot do reduce 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 回复  |  直到 8 年前