mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| log20111127    |
| log20111128    |
| log20111129    |
| log20111130    |
| log20111201    |
| log20111202    |
| log20111203    |
| log20111204    |
| log20111205    |
| log20111206    |
| log20111207    |
11 rows in set (0.02 sec)

mysql>

这样的格式,删除7天以前的日志表。

对SQL存储过程不是太熟悉,所以用SHELL脚本写了个。

#!/bin/bash

mysql -uroot -p123456 -e "use test;show tables;" | grep -v -i 'table' > /root/table.txt

for i in $(sort -rn /root/table.txt | sed -n "/$(date +%Y%m%d -d '7 days ago')/,/end/p")
do
   ##mysql -uroot -p123456 -e "use test;drop table $i;"
   echo $i
done


[root@vm02 ~]# ./table.sh
log20111130
log20111129
log20111128
log20111127
[root@vm02 ~]#