我需要什么: 每隔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