你可以使用一个 CHANGE old_col_name create_definition 子句来重命名一个列。为了这样做,你必须指定旧的和新的列名,以及列当前的类型。例如,为了将一个 INTEGER 列 a 重命名为 b,你必须这样做: mysql> ALTER TABLE t1 CHANGE a b INTEGER;如果你希望改变一个列的类型而不是列名,CHANGE 句法仍然需要有两个列名,即使它们是一样的。例如: mysql> ALTER TABLE t1 CHANGE b b BIGINT NOT NULL;然后,到 MySQL 3.22.16a 时,你也可以使用 MODIFY 来改变一个列的类型而不需要重命名它: mysql> ALTER TABLE t1 MODIFY b BIGINT NOT NULL;如果你使用 CHANGE 或 MODIFY 缩短一个列,而该列上存在一个取列部分值的索引(举例来说,如果你有一个索引在一个 VARCHAR 列的前 10 个字符上),那么,你将不能使列短于索引的字符数目。 
http://www.phpe.net/mysql_manual/06-5.html#ALTER_TABLE