首页 > 解决方案 > MySQL 创建表并将当前日期附加到表名

问题描述

我希望运行一个创建表语句,但根据当前时间戳为其命名。我需要表的名称类似于以下内容:2020_07_23_new_table

我认为这样的事情会起作用,但我不确定这是否是最佳做法:

CREATE TABLE IF NOT EXISTS CONCAT(DATE_FORMAT(NOW(),'%y_%m_%d'), '_new_table') LIKE old_table
);

有没有办法在 MySQL 中实现这一点?

标签: mysql

解决方案


是的,您可以使用动态查询。像下面的东西。

SET @SQL = CONCAT('CREATE TABLE IF NOT EXISTS ', DATE_FORMAT(NOW(),'%Y_%m_%d'), '_new_table LIKE OLD_TABLE');
PREPARE stmt FROM @SQL;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

在这里查看演示


推荐阅读