mysql 在存储过程里的游标的表名能不能是变量啊?
DECLAREt1VARCHAR(20)default'users';DECLAREordernumbersCURSORFORSELECTuserid,passwordf...
DECLARE t1 VARCHAR(20) default 'users';
DECLARE ordernumbers CURSOR FOR SELECT userid, password from t1;
用mysql的人应该都看的懂这两条语句吧,我这样写可以嘛?mysql5.0支持吗?
我自己知道答案了,多谢大家的帮助。我的方法也跟朋友们分享。
可以先用预处理的方式建立一个临时表或者视图,然后将游标声明到临时表或者视图上,这样就可以实现游标的表名是变量了。另外,建议大家用临时表。因为在这个存储过程中建立的视图对其他过程是没有用的,还可能产生冲突,所有用session级的temporary table还是很明智的。 展开
DECLARE ordernumbers CURSOR FOR SELECT userid, password from t1;
用mysql的人应该都看的懂这两条语句吧,我这样写可以嘛?mysql5.0支持吗?
我自己知道答案了,多谢大家的帮助。我的方法也跟朋友们分享。
可以先用预处理的方式建立一个临时表或者视图,然后将游标声明到临时表或者视图上,这样就可以实现游标的表名是变量了。另外,建议大家用临时表。因为在这个存储过程中建立的视图对其他过程是没有用的,还可能产生冲突,所有用session级的temporary table还是很明智的。 展开
3个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询