`

mySQL批量刪庫跑路存儲過程

 
阅读更多
模糊匹配存儲過程如下
DROP PROCEDURE IF EXISTS drop_databases;
CREATE PROCEDURE drop_databases(
    IN paramDBNamePrefix VARCHAR(32),
    IN paramDBNameSuffix VARCHAR(32)
)
BEGIN
    DECLARE _done INT DEFAULT 0;
    DECLARE _cursorValue VARCHAR(255);

    DECLARE _cursor CURSOR FOR SELECT SCHEMA_NAME FROM information_schema.SCHEMATA 
        WHERE SCHEMA_NAME LIKE @_paramDBName;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET _done = 1;

    SET @_paramDBName = CONCAT("%", paramDBNamePrefix, "%", paramDBNameSuffix, "%");
    

    OPEN _cursor;
    REPEAT
        FETCH _cursor INTO _cursorValue;
        IF (_done <> 1) THEN
            SET @prepareStatement = CONCAT("DROP DATABASE ", _cursorValue);
            SELECT @prepareStatement;
            PREPARE stmt FROM @prepareStatement;
            EXECUTE stmt ;
            DEALLOCATE PREPARE stmt;
        END IF;
    UNTIL _done = 1 end REPEAT;
    CLOSE _cursor;
 END


参数有两个,分别是paramDBNamePrefix和paramDBNameSuffix表示待删除数据库的前缀和后缀,这两个参数会组成一个字符串’%paramDBNamePrefix%paramDBNameSuffix%’用作模糊查询的条件。

測試

call drop_databases(‘前綴’, ‘後綴’);
分享到:
评论

相关推荐

    Mysql从删库到跑路.pdf

    Mysql从删库到跑路.pdf

    MySQL DBA从入门到删库跑路-视频教程网盘链接提取码下载 .txt

    MySQL DBA从入门到删库跑路课程基于前篇的基础课程升级而来,课程分为了数据库进阶实战课程和DBA运维实战教程部分,分别从更深入的角度进行课程学习,帮助同学们一次性吃透MySQL DBA课程。 视频大小:4.6G

    MySQL创建存储过程批量插入10万条数据

    MySQL创建存储过程批量插入10万条数据 存储过程 1、首先防止主键冲突,我们清空表。 TRUNCATE table A_student; 2、编写存储过程 delimiter ‘$’; CREATE PROCEDURE batchInsert(in args int) BEGIN declare i int ...

    kettle批量导出mysql存储过程

    总结来说,Kettle批量导出MySQL存储过程涉及到的关键知识点有:Kettle的数据流设计、MySQL的存储过程、数据库元数据获取、循环控制、文件生成和命令行脚本的创建。熟练掌握这些技能,将有助于我们在数据库管理和维护...

    mysql从删库到恢复

    在案例1中,我们看到一个模拟的删库恢复过程: 1. 首先,创建了一个名为`testlzj`的数据库,并填充了测试数据。 2. 接着,模拟误删除操作,使用`DROP DATABASE`命令删除`testlzj`库。 3. 要确定恢复的起点和终点,...

    MySQL DBA从入门到删库跑路

    MySQL DBA从入门到删库跑路课程基于前篇的基础课程升级而来,课程分为了数据库进阶实战课程和DBA运维实战教程部分,分别从更深入的角度进行课程学习,帮助同学们一次性吃透MySQL DBA课程。

    mysql批量增加字段.txt

    MySQL批量对表增加指定字段,会快速实现批量字段的添加。写了2个存储存储过程,执行即可。方便快速!

    mysql如何进行删数据库跑路

    mysql如何进行删数据库跑路

    mysql批量导出建表语句.zip

    压缩包中的文件"mysql批量导出建表语句"很可能就是这个过程的结果,包含了由Kettle生成的所有建表语句。你可以打开这些文件查看具体的SQL语句,并在需要时在新的MySQL环境中执行它们以重新创建相同的数据库结构。 ...

    mysql批量修改(字段)列类型

    MySQL存储过程,一键批量修改一个表内的多个列(字段)类型。例如从int转换成varchar

    mysql存储过程教程

    MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预编译一系列SQL语句并封装成一个可重复使用的单元,从而提高数据处理的效率和代码的复用性。本教程将深入探讨MySQL存储过程的创建、调用以及相关概念...

    mysql 批量更新及效率对比

    MySQL 批量更新的高效方法 MySQL 批量更新是指在 MySQL 数据库中批量更新多条记录的操作。这种操作在实际应用中非常常见,例如批量更新用户信息、订单状态等。然而,批量更新的效率问题一直是一个棘手的问题。近期...

    mysql经典教程+mysql存储过程讲解

    本教程结合"mysql经典教程+mysql存储过程讲解"的主题,将深入探讨MySQL的基础知识以及核心特性——存储过程。 首先,我们需要理解什么是数据库。数据库是一个组织和存储数据的系统,允许用户以结构化方式访问和管理...

    mysql批量建表

    利用mysql存储函数,方便快捷批量建立mysql数据库测试表

    Java实现调用MySQL存储过程详解

    总的来说,Java通过JDBC调用MySQL存储过程涉及到连接数据库、创建`CallableStatement`、执行存储过程和处理结果。这使得开发者能够在Java应用中灵活地利用数据库提供的强大功能,实现更高效的数据处理。

    c++实现调mysql存储过程

    c++实现调mysql存储过程,实现存储过程的出参入参,可以支持查询多数据返回,还有存储过程的复杂数据的增删改等

    asp.net存储过程 增删改查对存储过程超作

    在ASP.NET中,我们可以利用ADO.NET库与数据库进行交互,调用存储过程以执行复杂的业务逻辑。 首先,让我们详细了解存储过程的概念。存储过程是存储在数据库服务器上的预先编译的SQL代码集合,它可以包含一个或多个...

    mysql存储过程——用于数据库的备份与还原

    MySQL存储过程是数据库管理系统中的一种重要功能,它允许程序员或数据库管理员预编译一系列SQL语句,形成一个可重用的程序单元。在本场景中,我们关注的是如何利用存储过程进行数据库的备份与还原,这在数据管理中至...

    深入浅析MySQL从删库到跑路_高级(一)——数据完整性

    在实际操作中,应谨慎处理数据,尤其是在执行删除操作时,以避免可能导致数据丢失或破坏数据完整性的行为,比如“删库跑路”这样的极端情况。因此,数据库管理策略和备份计划是保障数据安全的重要环节。

    MySQL存储过程的异常处理方法

    本实例展示了如何在MySQL存储过程中实现异常处理,以捕获并处理可能出现的错误。 首先,我们注意到在创建存储过程`myProc`时,使用了`delimiter $$`来改变MySQL客户端的语句分隔符,这是为了在存储过程中使用多个...

Global site tag (gtag.js) - Google Analytics