快乐堆屎山 2024-09-06 15:51 采纳率: 11.1%
浏览 1
已结题

如何用sql删除所有非系统的数据库

如何用sql批量删除数据库(比如数据库名以java开头),导师要求要用sql实现,不是表!是数据库!

  • 写回答

1条回答 默认 最新

  • Roc-xb 后端领域优质创作者 2024-09-06 15:57
    关注
    
    DELIMITER //
    
    CREATE PROCEDURE DropDatabasesWithPrefix(prefix VARCHAR(255))
    BEGIN
        DECLARE done INT DEFAULT FALSE;
        DECLARE dbName VARCHAR(255);
        DECLARE cur CURSOR FOR 
            SELECT SCHEMA_NAME 
            FROM INFORMATION_SCHEMA.SCHEMATA
            WHERE SCHEMA_NAME LIKE CONCAT(prefix, '%');
        DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
    
        OPEN cur;
        
        read_loop: LOOP
            FETCH cur INTO dbName;
            IF done THEN
                LEAVE read_loop;
            END IF;
            SET @dropStmt = CONCAT('DROP DATABASE `', dbName, '`');
            PREPARE stmt FROM @dropStmt;
            EXECUTE stmt;
            DEALLOCATE PREPARE stmt;
        END LOOP;
    
        CLOSE cur;
    END //
    
    DELIMITER ;
    
    -- 调用存储过程
    CALL DropDatabasesWithPrefix('java');
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月14日
  • 已采纳回答 9月6日
  • 创建了问题 9月6日

悬赏问题

  • ¥20 如何让程序ab.eXe自已删除干净硬盘里的本文件自己的ab.eXe文件
  • ¥50 爬虫预算充足,跪巨佬
  • ¥15 滑块验证码拖动问题悬赏
  • ¥15 Wanted but not invoked:Actually, there were zero interactions with this moc
  • ¥20 怎么驱动tb6612
  • ¥15 Arcgis 3D效果点要素
  • ¥15 在执行yolo训练脚本的时候,没有报错,在扫描val这一步后就推出执行了
  • ¥15 delphi开发的WEBSERVER改用HTTPS协议
  • ¥15 pic16f877A单片机的计数器proteus仿真失效
  • ¥100 调查 Vitis AI 中验证 .xmodel 量化后的正确性