【发布时间】:2014-09-07 16:39:49
【问题描述】:
我创建 mysql 事件脚本的目的是每月自动创建 mysql 表。我想要基于当前月份和年份的表格名称。我该怎么做?
我正在尝试这个:
CREATE DEFINER = `root`@`localhost` EVENT `event_name`
ON SCHEDULE EVERY 1 MONTH
ON COMPLETION NOT PRESERVE ENABLE
DO
CREATE TABLE IF NOT EXISTS `currentMonth_currentYear_tableName` (
`column1` INT( 11 ) NOT NULL ,
`column2` DATETIME NOT NULL ,
`column3` DECIMAL( 10, 1 ) NOT NULL ,
PRIMARY KEY ( `column1` )
) ENGINE = INNODB DEFAULT CHARSET = utf8
【问题讨论】:
-
这行得通吗?
CREATE TABLE IF NOT EXISTS CONCAT(DATE_FORMAT(NOW(),'%m_%Y'), '_tableName') ( -
@hargobind,谢谢,但我出错了。您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 '(NOW(),
%m_%Y),_tableName) (column1INT(11) NOT NULL ,column2DAT' 附近使用的正确语法4.这里的问题:CONCAT(DATE_FORMAT(NOW(),%m_%Y),_tableName) -
尝试将
CONCAT(DATE_FORMAT(NOW(),'%m_%Y'), '_tableName')分配给一个变量,并使用表名应该放在的变量。
标签: mysql mysql-event