Normalmente, la respuesta de Eric debería funcionar:
ALTER TABLE tbl_name MODIFY columnA varchar(6) NULL DEFAULT NULL;
(Aunque la parte 'NULL NULL DEFAULT' es opcional).
Pero, como usted, tuve un caso que acaba de regresar bien sin hacer nada. En mi caso, parece deberse al hecho de que mi clave era parte de la clave principal. Así que tuve que hacer lo siguiente:
ALTER TABLE tbl_name DROP PRIMARY KEY;
ALTER TABLE tbl_name MODIFY columnA varchar(6);
ALTER TABLE tbl_name ADD PRIMARY KEY (columnA);
con la última consulta que especifica cuál es la clave principal en realidad.
Además, en caso de que alguien piensa que es demasiado detallado, la siguiente consulta combinada no funciona, a pesar de que debería ser idéntica:
ALTER TABLE tbl_name DROP PRIMARY KEY, MODIFY columnA varchar(6), ADD PRIMARY KEY (columnA);
que asumen que MySQL reescribe que la última consulta en un orden diferente, por lo que la clave primaria todavía existe cuando se realiza la modificación, de ahí la necesidad de dividirla en tres enunciados.
FYI, esto está en mysql 5.1.47 pero aún no he encontrado ninguna documentación que indique por qué sucede esto, así que no sé qué versiones se ven afectadas.
No hizo la diferencia. – Will
@Will: Funciona para mí en 5.1.35 - ¿Qué error está recibiendo? –
Ningún error. Consulta bien, 0 filas afectadas. 0 registros, 0 duplicados, 0 advertencias. – Will