Mysql 批量建表存储过程

   最近项目中用到了使用存储过程批量建表的功能,记录下来:

   

USE db_test_3;
drop procedure if EXISTS `createTablesWithIndex`;
create procedure createTablesWithIndex()
BEGIN 
        DECLARE `@i` int(11);     
        DECLARE `@createSql` VARCHAR(2560); 
        DECLARE `@createIndexSql1` VARCHAR(2560);     
        DECLARE `@createIndexSql2` VARCHAR(2560);
        DECLARE `@createIndexSql3` VARCHAR(2560);


        set `@i`=0; 
        WHILE  `@i`< 64 DO                 
    
                            -- `M_ID` bigint AUTO_INCREMENT PRIMARY KEY NOT NULL,
                            -- 创建表        
                            SET @createSql = CONCAT('CREATE TABLE IF NOT EXISTS test_',`@i`,'(
                                `t_ID` bigint   AUTO_INCREMENT PRIMARY KEY NOT NULL,
                                `t_CODE` varchar(30) DEFAULT NULL,
                                )'
                            ); 
                            prepare stmt from @createSql; 
                            execute stmt;                             
                        
                            -- 创建索引    
                            set @createIndexSql1  = CONCAT('create index `t_code` on test_',`@i`,'(`t_code`);');
                            prepare stmt from @createIndexSql1; 
                            execute stmt; 
SET `@i`= `@i`+1; 
            END WHILE;
END

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值