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

被折叠的 条评论
为什么被折叠?



