mysql存储过程批量多表删除,[mysql]表批量操作的存储过程

分析2个mysql存储过程

1.产生一批按照标号结尾的表

delimiter //

drop procedure if exists genarate_app_user;

CREATE  PROCEDURE `genarate_app_user`()

begin

set @i=1;

while @i<= 200 do

set @result= concat('drop TABLE if exists `app_user_',@i,'`;');

PREPARE sqlstr from @result;

Execute sqlstr;

set @result= concat('CREATE TABLE `app_user_',@i,'` (

`uid` bigint(20) NOT NULL DEFAULT ''0'' COMMENT ''用户id'',

`cell` varchar(18) DEFAULT NULL DEFAULT '''' COMMENT ''虚拟手机号'',

`province` varchar(16) DEFAULT NULL DEFAULT '''' COMMENT ''省份'',

`phone_type` varchar(10) DEFAULT NULL DEFAULT '''' COMMENT ''手机平台类型:SYMBIAN/ANDROID/IPHONE'',

`tag` varchar(100) NOT NULL DEFAULT '''' COMMENT ''用户的tag'',

primary key (uid)

) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT=''app用户信息分表'';');

PREPARE sqlstr from @result;

Execute sqlstr;

set @i=@i+1;

end while;

end;

//

call genarate_app_user;

//

2.对批量表记录数进行汇总统计的过程

delimiter // drop procedure if exists sumnum_app_user; CREATE  PROCEDURE `sumnum_app_user`() begin    declare res int  DEFAULT 0;     set @i=1;  while @i<= 200 do     set @result= concat('select coalesce(COUNT(1),0) into  @COT  from `app_user_',@i,'`;'); PREPARE sqlstr from @result; Execute sqlstr; set res := res + @COT;  set @i=@i+1;  end while;  select res; end; //

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值