这个问题一直困扰着偶将近一个月了,偶在CSDN ,在MYSQL.cn 论坛里去发帖提问相关滴问题,去找了,也看到了很多人在问这问题,可不晓得是高手不出面,还系这些技术论坛里面热心滴人太少了,挂了好一个多月了,都米有人能够正面给出能够让偶看滴明白滴例子。有的也就是把MYSQL手册上滴一些说明帖在上面。。。看到这种场面真是让偶感到有些心寒,今天正好有空,重新再把这个一个多月前米有办法处理滴问题再次拿出来自己摸索。。。。(在学习MYSQL新滴功能时,要想用他,给偶一个感觉就是自己动手自己去慢慢试。最不管你在网上怎么找,有些东东,最终还是得靠自己)
看了其它网站滴高手滴帖子后 感想如下:
看了好多垃圾 帖子,(不晓得是偶自己理解有问题还是他们写滴帖子米有写清楚)按他们说滴,都不行,他们都在说 用PREPARE 可以办到,搞了半天都系从手册中搞出来的例子,他们根本就嘛都米有写。
现偶把用存储过程动态L建表滴例子 贴出来,希望对大伙有所帮助。
例一:循环建立字段相同滴多表 表名如: 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)
例二:参数做为表名 查询
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;
还是那句话,各位朋友,要系你在学习写MYSQL过程中要系有好滴东东,希望能够和大家一起分享,,别一味去为了得一些分去写一些让人看不明白滴东东,不但浪费自己滴时间也浪费其它人滴时间。
看了其它网站滴高手滴帖子后 感想如下:
看了好多垃圾 帖子,(不晓得是偶自己理解有问题还是他们写滴帖子米有写清楚)按他们说滴,都不行,他们都在说 用PREPARE 可以办到,搞了半天都系从手册中搞出来的例子,他们根本就嘛都米有写。
现偶把用存储过程动态L建表滴例子 贴出来,希望对大伙有所帮助。
例一:循环建立字段相同滴多表 表名如: 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)
例二:参数做为表名 查询
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;
还是那句话,各位朋友,要系你在学习写MYSQL过程中要系有好滴东东,希望能够和大家一起分享,,别一味去为了得一些分去写一些让人看不明白滴东东,不但浪费自己滴时间也浪费其它人滴时间。