例一:循环建立字段相同滴多表 表名如: k1k k2k k3k ........
mysql> delimiter //
mysql> create procedure ppp (in i int)
-> begin
-> declare k int;
-> set k=1;
-> while k<i do
-> set @t=k;
-> set @tname=concat('k',@t,'k');
-> set @dwhe='(id int,name varchar(255))';
-> set @sql_text:=concat('create table ',@tname,@dwhe);
-> prepare stmt from @sql_text;
-> execute stmt;
-> set k=k+1;
-> end while;
-> end;
-> //
Query OK, 0 rows affected (0.00 sec)
mysql> call ppp(6)//
Query OK, 0 rows affected (0.86 sec)
drop procedure if exists procedure_name;//如果已经存在名为procedure_name的存储过程 则删除之。
例二:表名做为参数 查询表中记录总数。
mysql> create procedure pp (tname varchar(255))
-> begin
-> set @na=tname;
-> set @sql_text:='select count(*) from ';
-> set @sql_text:=concat(@sql_text,@na);
-> prepare stmt from @sql_text;
-> execute stmt;
-> end;
->//
比如想用上面的存储过程查询表pet中记录的总数:
call pp('pet')//
一定记得要加单引号。