【发布时间】:2011-11-21 07:03:52
【问题描述】:
我正在尝试创建一个名称基于当前年份和月份的表 (2011-09),但 MySQL 似乎不喜欢这样。
SET @yyyy_mm=Year(NOW())+'-'+Month(NOW());
CREATE TABLE `survey`.`@yyyy_mm` LIKE `survey`.`interim`;
SHOW TABLES IN `survey`;
+-----------+
| interim |
+-----------+
| @yyyy_mm |
+-----------+
如果我在CREATE TABLE; 周围没有标记@yyyy_mm,则会收到一般语法错误。
@yyyy_mm 解析为 2020。
【问题讨论】:
-
标识符不是变量。变量不是标识符。这需要使用“动态 SQL”——这在我使用过的所有数据库中都很糟糕。
标签: mysql variables dynamic tablename