searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

使用存储过程创建表

2024-10-14 09:40:18
5
0

我们在开发过程中,有可能需要创建大量的表用于测试,这时候我们可以使用存储过程来实现

定义一个存储过程

DELIMITER $$  
  
CREATE PROCEDURE CreateTestTables(IN num_tables INT)  
BEGIN  
    DECLARE i INT DEFAULT 1;  
    WHILE i <= num_tables DO  
        SET @tableName = CONCAT('test_', LPAD(i, 4, '0')); -- 生成表名,如test_0001, test_0002等  
        SET @createTableSQL = CONCAT('CREATE TABLE ', @tableName, ' (`id` int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=innodb');  
        PREPARE stmt FROM @createTableSQL;  
        EXECUTE stmt;  
        DEALLOCATE PREPARE stmt;  
        SET i = i + 1;  
    END WHILE;  
END$$  
  
DELIMITER ;  

 

调用存储过程创建1000个表

CALL CreateTestTables(1000);

0条评论
0 / 1000
vlookup
2文章数
0粉丝数
vlookup
2 文章 | 0 粉丝
vlookup
2文章数
0粉丝数
vlookup
2 文章 | 0 粉丝
原创

使用存储过程创建表

2024-10-14 09:40:18
5
0

我们在开发过程中,有可能需要创建大量的表用于测试,这时候我们可以使用存储过程来实现

定义一个存储过程

DELIMITER $$  
  
CREATE PROCEDURE CreateTestTables(IN num_tables INT)  
BEGIN  
    DECLARE i INT DEFAULT 1;  
    WHILE i <= num_tables DO  
        SET @tableName = CONCAT('test_', LPAD(i, 4, '0')); -- 生成表名,如test_0001, test_0002等  
        SET @createTableSQL = CONCAT('CREATE TABLE ', @tableName, ' (`id` int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=innodb');  
        PREPARE stmt FROM @createTableSQL;  
        EXECUTE stmt;  
        DEALLOCATE PREPARE stmt;  
        SET i = i + 1;  
    END WHILE;  
END$$  
  
DELIMITER ;  

 

调用存储过程创建1000个表

CALL CreateTestTables(1000);

文章来自个人专栏
mysql+
2 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0