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