-- 處理儲存過程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; -- 儲存過程名稱
MySQL 儲存過程刪除大表
1 許可權問題 alter routine 編輯或刪除儲存過程 create routine 建立儲存過程 execute 建立儲存過程 2 儲存過程相關的一些命令 show procedure status g 檢視資料庫中有哪些儲存過程 show procedure status where d...
sql server 刪除重複項並儲存到原表中
creat table 新錶名 as select distinct from 去重表名 delete from 去重表 刪除去重表裡的資料 insert into 去重表 select from 新錶名 通過建立區域性臨時表,對資料表進行去重,這樣不會造成 積累,也不用重新修改 use mg om...
刪除儲存過程
declare procname varchar 500 declare cur cursor for select name from sys.objects where type p open cur fetch next from cur into procname while fetch s...