mysql如何批量删除数据库

avatar
作者
猴君
阅读量:0

在MySQL中,要批量删除数据库,可以使用循环和动态SQL语句。这里是一个示例,展示了如何使用存储过程来批量删除以特定前缀开头的数据库:

  1. 首先,创建一个存储过程,用于批量删除数据库:
DELIMITER $$ CREATE PROCEDURE DropDatabasesWithPrefix(IN dbPrefix VARCHAR(255)) BEGIN     DECLARE done INT DEFAULT 0;     DECLARE dbName VARCHAR(255);     DECLARE cur CURSOR FOR SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME LIKE CONCAT(dbPrefix, '%');     DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;      OPEN cur;      read_loop: LOOP         FETCH cur INTO dbName;         IF done THEN             LEAVE read_loop;         END IF;          SET @sql = CONCAT('DROP DATABASE ', dbName);         PREPARE stmt FROM @sql;         EXECUTE stmt;         DEALLOCATE PREPARE stmt;     END LOOP;      CLOSE cur; END$$ DELIMITER ; 

这个存储过程接受一个参数dbPrefix,表示要删除的数据库名称的前缀。

  1. 调用存储过程,传入要删除的数据库名称前缀:
CALL DropDatabasesWithPrefix('myprefix_'); 

这将删除所有以myprefix_开头的数据库。请注意,在执行此操作之前确保备份好相关数据,因为删除操作是不可逆的。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!