存储过程变量如何引用

Ammy_Jiang 2010-09-14 04:21:51
在create table v_ADMIN_TAB as select * from POI_CHINA where poi_province = v_PROVINCE_ID order by display desc; 中,红色字 v_ADMIN_TAB 是变量,不知道在此语句中该如何引用?
请高手指点,谢谢!

BEGIN

DECLARE v_PROVINCE_ID varchar(100);
DECLARE v_ADMIN_TAB varchar(100);

DECLARE cur_poi_name CURSOR FOR
SELECT PROVINCE_ID,POI_ADMIN_TAB FROM PROVINCE_NAME;
OPEN cur_poi_name;
cursor_loop:LOOP
FETCH cur_poi_name INTO v_PROVINCE_ID,v_ADMIN_TAB;
#使用fetch到的值创建多个表
create table v_ADMIN_TAB as select * from POI_CHINA where poi_province = v_PROVINCE_ID order by display desc; #v_ADMIN_TAB 为变量,不知该如何引用

END LOOP cursor_loop;
CLOSE cur_poi_name;

END
...全文
94 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2010-09-14
  • 打赏
  • 举报
回复
动态语句使用prepare / execute /
Ammy_Jiang 2010-09-14
  • 打赏
  • 举报
回复
谢谢2位,搞定~~~
feixianxxx 2010-09-14
  • 打赏
  • 举报
回复
这需要动态执行该语句..
create table v_ADMIN_TAB as select * from POI_CHINA where poi_province = v_PROVINCE_ID order by display desc;
改成

set @str=concat('create table ',v_ADMIN_TAB,' as select * from POI_CHINA where poi_province = v_PROVINCE_ID order by display desc;');
prepare dmt from @str;
execute dmt;

、试试~
WWWWA 2010-09-14
  • 打赏
  • 举报
回复
set @asql=concat('create table ',v_ADMIN_TAB,' as select * from POI_CHINA where poi_province = v_PROVINCE_ID order by display desc');
prepare dd from @asql;
execute dd;

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧