呵呵,
只能用动态 SQL看看我的这个 BLOG
MySQL 实现 Ms SQL 的 sp_executesql
http://borland.mblogger.cn/shuixin13/posts/25911.aspx
只能用动态 SQL看看我的这个 BLOG
MySQL 实现 Ms SQL 的 sp_executesql
http://borland.mblogger.cn/shuixin13/posts/25911.aspx
CREATE PROCEDURE `takeit`(in RandomString character(20))
BEGIN
set @a=RandomString;
set @s='create table ? (MyValues int)'; prepare stmt1 from @s; execute stmt1 using @a; deallocate prepare stmt1;
END$$ DELIMITER ;
set @s=CONCAT('create table ', RandomString, ' (MyValues int)'); prepare stmt1 from @s; execute stmt1
set @s = CONCAT('create table sssss (MyValues int)');
prepare stmt1 from @s;
execute stmt1;
是正确可行的,但是如果我把这东西放到procedure中就会出错,大哥说不应将表名做为参数传入,可这部分并不是我能管的范围,上面已经生成了一个字符串(但我知道他是随机生成的)要我用处理过程创建一个用随机字符串作为表名的表,我该怎么办?