MYSQL存储过程使用动态SQL 建多表

这个问题一直困扰着偶将近一个月了,偶在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过程中要系有好滴东东,希望能够和大家一起分享,,别一味去为了得一些分去写一些让人看不明白滴东东,不但浪费自己滴时间也浪费其它人滴时间。
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值