-- 處理存儲過程 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; -- 存儲過程名稱