mysql存储过程中怎么进行跨库操作? 10
settablename:=(selecttnamefrompeople);settabletime:=(selectCONCAT_WS('_',tablename,ti...
set tablename :=(select tname from people);
set tabletime :=(select CONCAT_WS('_',tablename,time));
set dbname :=(select dname from people);
set @s=concat('alter table ',dbname.tablename,' rename to ',dbname.tabletime);
PREPARE str from @s;
EXECUTE str;
结果:
ERROR 1109 (42S02): Unknown table 'dbname' in field list 该怎么使用第二个库呢 又不能直接写use 展开
set tabletime :=(select CONCAT_WS('_',tablename,time));
set dbname :=(select dname from people);
set @s=concat('alter table ',dbname.tablename,' rename to ',dbname.tabletime);
PREPARE str from @s;
EXECUTE str;
结果:
ERROR 1109 (42S02): Unknown table 'dbname' in field list 该怎么使用第二个库呢 又不能直接写use 展开
3个回答
展开全部
傻孩子, 你不能直接dbname.tablename 这样写, 你得先把他们concat起来, 因为他们是变量呀
set @s=concat('alter table ',concat(dbname, '.', dablename),' rename to ',concat(dbname, '.', tabletime
));
set @s=concat('alter table ',concat(dbname, '.', dablename),' rename to ',concat(dbname, '.', tabletime
));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果库不在同一个mysql上 只能通过开发语言来实现相互通讯
追问
是在同一个服务器上,但是这个有不同的库不同的表,所以您帮忙想一下 有处理的方法吗?
追答
我前面估计没有给你说清楚..只要是跨库操作都需要用开发语言协助。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先建立个视图! 在视图里跨库连表! 然后 在 存储过程中使用视图就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询