mysql删除所有指定表前缀的表

删除所有以pre_开头的表。SQL命令怎么写?... 删除所有以pre_开头的表。
SQL命令怎么写?
展开
 我来答
奥丁神王
推荐于2016-08-18 · TA获得超过357个赞
知道小有建树答主
回答量:331
采纳率:100%
帮助的人:394万
展开全部
DELIMITER //
CREATE PROCEDURE drop_table( DB_NAME varchar(50), prefix varchar(16))
BEGIN
DECLARE done INT DEFAULT 0; #游标的标志位
DECLARE a varchar(20);
DECLARE b varchar(40);
DECLARE cur1 CURSOR FOR SELECT table_name FROM information_schema.TABLES WHERE table_schema=DB_NAME and table_name like concat(prefix, '%');
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;

OPEN cur1;
REPEAT
FETCH cur1 INTO a;
IF NOT done THEN
set b=concat('drop table ',DB_NAME,'.',a); # 拼删除命令
# set b=concat('TRUNCATE from ',DB_NAME,'.',a); # 拼删除命令
SET @E=b;
PREPARE stmt1 FROM @E;
EXECUTE stmt1; # 执行命令
DEALLOCATE PREPARE stmt1; #释放对象
END IF;
UNTIL done END REPEAT;
CLOSE cur1;
END;
//
DELIMITER ;
call drop_table('test', 'pre_');
淡言人生
2014-10-20
知道答主
回答量:15
采纳率:0%
帮助的人:8.6万
展开全部
这个没有直接可用的命令,可以先使用下面这个语句查询出来
Select CONCAT( 'drop table ', table_name, ';' )FROM information_schema.tables Where table_name LIKE 'pre_%';
这个可以查到所有要删除的,然后自己写sql,比如
drop table pre_aaa,pre_aab,pre_aac;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式