通常、エリックの答えはうまくいくはずです:
ALTER TABLE tbl_name MODIFY columnA varchar(6) NULL DEFAULT NULL;
(ただし、「NULL DEFAULTNULL」の部分はオプションです)。
しかし、あなたと同じように、何もせずにOKに戻っただけのケースがありました。私の場合、私のキーが主キーの一部であったことが原因のようです。だから私は次のことをしなければなりませんでした:
ALTER TABLE tbl_name DROP PRIMARY KEY;
ALTER TABLE tbl_name MODIFY columnA varchar(6);
ALTER TABLE tbl_name ADD PRIMARY KEY (columnA);
その最後のクエリで、主キーが実際に何であるかを指定します。
また、それが冗長すぎると思われる場合は、次の組み合わせたクエリは、同一である必要がありますが、機能しません。
ALTER TABLE tbl_name DROP PRIMARY KEY, MODIFY columnA varchar(6), ADD PRIMARY KEY (columnA);
mysqlは最後のクエリを別の順序に書き換えて、変更が実行されたときに主キーがまだ存在するようにするため、3つのステートメントに分割する必要があると思います。
参考までに、これはmysql 5.1.47にありますが、これが発生する理由を示すドキュメントがまだ見つからないため、影響を受けるバージョンがわかりません。