免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2593 | 回复: 3
打印 上一主题 下一主题

存储过程的alter 不能使用变量吗 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-18 21:25 |只看该作者 |倒序浏览
存储如下:

while i<=@outweek
do
set @weekname=i;
alter table weekstock add  @weekname int(5);
set i=i+1;
end while;

报这个错
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@weekname int(5);

难道在存储过中,alter是不能增加带有变量的列么

论坛徽章:
0
2 [报告]
发表于 2009-08-19 00:43 |只看该作者
这样说不是很清楚,楼主能把整个存储过程贴出来吗

论坛徽章:
0
3 [报告]
发表于 2009-08-19 00:45 |只看该作者
或者可以用这样的形式   
SET @SqlCmd ="update data_index SET Edit_date = UNIX_TIMESTAMP()";

      SET @SqlCmd = CONCAT(@SqlCmd , ',Keywords = ?');
      SET @a = 1_keywords;
      SET @SqlCmd = CONCAT(@SqlCmd , ' WHERE Pid=?');
      SET @b = id;
      PREPARE stmt from @SqlCmd;
      EXECUTE stmt USING @a,@b;

论坛徽章:
0
4 [报告]
发表于 2009-08-19 11:50 |只看该作者

回复 #3 cccxxx 的帖子

谢谢你,我就是这样解决的
set @weekname=i;
set @stmt=concat('alter table weekstock add week',@weekname,' int(5)');
prepare s1 from @stmt;
      execute s1;
      deallocate prepare s1;
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP