mysql怎么动态创建分表
时间: 2023-09-21 22:03:22 浏览: 66
在 MySQL 中,可以使用动态 SQL 语句来创建分表。具体步骤如下:
1. 创建一个存储过程,用于动态生成 SQL 语句。
```sql
DELIMITER $$
CREATE PROCEDURE `create_partition_table`(table_name VARCHAR(64), start_date DATE, end_date DATE)
BEGIN
DECLARE current_date DATE;
SET current_date = start_date;
WHILE current_date <= end_date DO
SET @sql = CONCAT(
'CREATE TABLE ',
table_name,
'_',
DATE_FORMAT(current_date, '%Y%m%d'),
' LIKE ',
table_name
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET current_date = DATE_ADD(current_date, INTERVAL 1 DAY);
END WHILE;
END$$
DELIMITER ;
```
2. 调用存储过程,生成动态 SQL 语句并执行。
```sql
CALL create_partition_table('your_table_name', '2020-01-01', '2020-01-31');
```
上述代码将会创建名为 `your_table_name_20200101`、`your_table_name_20200102`、`your_table_name_20200103` 等共计 31 个子表,分别以日期为后缀。这样,就可以动态地创建分表了。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)