我想在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);
执行确定
答案 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;