首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何基于前缀字符串删除多个数据库

如何基于前缀字符串删除多个数据库
EN

Stack Overflow用户
提问于 2010-09-21 16:05:52
回答 1查看 348关注 0票数 1

example_或e_

我希望删除与前缀e_匹配的所有数据库,以便删除e_database1、e_database2等。

无法工作的命令:

mysql删除数据库e_% mysql删除数据库e_*

我不是在查找给定数据库中的所有表,而是查找给定MySQL服务器中的所有数据库。

EN

回答 1

Stack Overflow用户

发布于 2013-11-22 00:07:33

您可以使用这样的存储过程来完成此操作:

代码语言:javascript
复制
/* Start stored proc */
DELIMITER //

DROP PROCEDURE IF EXISTS db_clean_up //
CREATE PROCEDURE db_clean_up
(
)
BEGIN
declare done bit default false;
  declare deleted varchar(255);

-- Drop DBs
DECLARE cur1 CURSOR FOR SELECT 
    SCHEMA_NAME 
FROM information_schema.SCHEMATA 
WHERE SCHEMA_NAME LIKE 'db_prefix%';
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur1;

  createLoop: LOOP
    FETCH cur1 INTO deleted;

    IF done THEN
      LEAVE createLoop;
    END IF;

SET @query = CONCAT('DROP DATABASE `', deleted, '`;');

PREPARE stmt1 FROM @query;

EXECUTE stmt1;

END LOOP createLoop;

CLOSE cur1;

END //

delimiter ;

/* End stored proc */
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3762210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档