首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

mysql自动删除表的有关问题

2012-04-18 
mysql自动删除表的问题在mysql中建了很多表,表名包含日期(例如:20111205),如何将超过10天(即10天之前)的表

mysql自动删除表的问题
在mysql中建了很多表,表名包含日期(例如:20111205),如何将超过10天(即10天之前)的表全部删除掉?

[解决办法]
自己写个存储过程可以实现。
[解决办法]
只能用存储过程或者你自己的程序来实现。

在你自己的程序中,则可以 show tables like 'xxx%'; 得到相应表名,然后再进行 drop 这些表。

存储过程中的话,则可以通过 select TABLE_NAME from INFORMATION_SCHEMA.TABLES where ... 得到表名,然后构成相应"DROP TABLE XX"的字符串, 再用PREPARE, EXECUTE执行这个字符串中的SQL语句。
[解决办法]
然后每天凌晨crontab调用
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_droptable_errorlog`()
BEGIN
set @sql = concat('drop table errorlog_',date_format(date_add(now(),interval -10 day),'%Y%m%d'));
 prepare stmt from @sql;
execute stmt;
end
[解决办法]
写个存储过程删除表,写个数据库event每天执行这个存储过程

热点排行