mysql存储过程动态创建和删除表,比如一次创建1万张表

这篇博客介绍了如何使用SQL创建和删除一批结构相同的表。提供的代码示例展示了两个存储过程,一个用于动态删除前缀为'order_info_'且后缀为1到12的表,另一个用于动态创建这些表,表中包含'id'、'business_time'、'create_time'和'order_no'四个字段。

创建几个相同结构的表,表名前缀相同,后缀是动态的数字

    动态删除表

    DELIMITER $
    DROP PROCEDURE
    IF
        EXISTS `drop_order_info_1-12`;
    CREATE PROCEDURE `drop_order_info_1-12` ( in num int) BEGIN
    DECLARE
        i INT;
     
    SET i = 1;
    WHILE
        i <= num DO
     
    SET @sql_drop_table = concat( 'drop table if exists order_info_', i );
    PREPARE sql_drop_table
    FROM
        @sql_drop_table;
    EXECUTE sql_drop_table;
     
    SET i = i + 1;
     
    END WHILE;
     
    END $
    DELIMITER ;

    动态创建表

    DELIMITER $
    DROP PROCEDURE
    IF
        EXISTS `create_order_info_1-12`;
    CREATE PROCEDURE `create_order_info_1-12` (in num int ) BEGIN
    DECLARE
        i INT;
     
    SET i = 1;
    WHILE
        i <= num DO
     
    SET @sql_create_table = concat( 'CREATE TABLE order_info_', i, '( id VARCHAR ( 64 ) PRIMARY KEY, business_time datetime, create_time datetime, order_no VARCHAR ( 20 ) );' );
    PREPARE sql_create_table
    FROM
        @sql_create_table;
    EXECUTE sql_create_table;
     
    SET i = i + 1;
     
    END WHILE;
     
    END $
    DELIMITER ;

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值