当我只想改变一个时,我必须在SQL语句中包含所有列属性吗?

时间:2011-04-22 20:17:32

标签: mysql metadata

我有一个MySQL数据库,我希望通过向所有列添加注释来进行注释,

根据我在MySQL documentation上阅读的内容,在更改其中任何一个时,必须包含数据类型和所有属性。

例如,我必须输入

ALTER TABLE `dbname`.`tablename` 
  CHANGE COLUMN `columnname` `columnname` 
  INT(11) NULL DEFAULT NULL COMMENT 'this is my comment`; 

对于我来说,避免重复每次更改的列信息会更快,例如,只需要提交命令,例如:

ALTER TABLE `dbname`.`tablename` 
 CHANGE COLUMN `columnname` 
 COMMENT 'this is my comment`; 

是否有任何选项可以添加不需要我重述表结构的注释?

1 个答案:

答案 0 :(得分:2)

文档很清楚,CHANGE COLUMN需要完整的列定义:

  

CHANGE [COLUMN] old_col_name new_col_name column_definition

任何可选项都在括号内。

最好的办法是编写一个小的一次性脚本,根据表的当前架构生成ALTER TABLE命令。您应该能够从您正在使用的任何数据访问层中提取列定义。