-- 处理存储过程
drop procedure if exists proc_drop_2017msg_tables; -- 存储过程名称
delimiter //
create procedure proc_drop_2017msg_tables() -- 存储过程名称
begin
set @tab_year=17; -- 开始年份
set @tab_month=09; -- 开始月份
set @tab_day=20; -- 开始日期
while @tab_year<=17 do -- 结束年份
while @tab_month<=12 do -- 结束月份
if (@tab_month=1 or @tab_month=3 or @tab_month=5 or @tab_month=7 or @tab_month=8 or @tab_month=10 or @tab_month=12) then
set @days=31;
elseif @tab_month=2 then
if (@tab_year%400=0 or (@tab_year%4=0 and @tab_year%100<>0)) then
set @days=29;
else
set @days=28;
end if;
else
set @days=30;
end if;
while @tab_day<=@days do
if @tab_month<10 then
if @tab_day<10 then
set @table_name=CONCAT('open_messageinfo_20',@tab_year,'0',@tab_month,'0',@tab_day); -- 表名
else
set @table_name=CONCAT('open_messageinfo_20',@tab_year,'0',@tab_month,@tab_day); -- 表名
end if;
else
if @tab_day<10 then
set @table_name=CONCAT('open_messageinfo_20',@tab_year,@tab_month,'0',@tab_day); -- 表名
else
set @table_name=CONCAT('open_messageinfo_20',@tab_year,@tab_month,@tab_day); -- 表名
end if;
end if;
set @alter_table_sql=concat('drop table ',@table_name,' ;');
prepare statement from @alter_table_sql;
execute statement;
set @tab_day=@tab_day+1;
end while;
set @tab_month=@tab_month+1;
set @tab_day=1;
end while;
set @tab_year=@tab_year+1;
set @tab_month=1;
end while;
end
//
delimiter ;
call proc_drop_2017msg_tables; -- 存储过程名称