在MySQL中添加名为CURDATE()的列?

时间:2011-06-03 11:29:55

标签: mysql sql mysql-error-1064

我想在MySQL中的现有表中添加一列,名称=执行添加的日期。我希望这发生在数据库中(即没有php,python,perl脚本) 我试过这个:

SET @tmp_date = CURDATE();
ALTER TABLE my_report ADD @tmp_date INT(6);

但查询失败,错误为#1064 - 您的SQL语法出错; 这不是日期格式,因为@tmp_date将返回2011-06-03和

ALTER TABLE my_report ADD `2011-06-03` INT(6); 

执行确定

2 个答案:

答案 0 :(得分:2)

在列名称周围添加`(backstick):

SET @tmp_date = CURDATE();
ALTER TABLE my_report ADD `@tmp_date` INT(6);

但这有什么不好的设计气味?为什么要创建新列而不使用其他表或类似结构?

答案 1 :(得分:1)

set @query = concat("ALTER TABLE my_report ADD `", curdate(), "` INT(6)");
prepare stmt from @query;
execute stmt;