我们在开发过程中,有可能需要创建大量的表用于测试,这时候我们可以使用存储过程来实现
定义一个存储过程
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);