¿Cómo puedo modificar el tamaño de la columna en una tabla mysql?

Creé una tabla y puse accidentalmente una longitud de varchar 300 en lugar de 65353 . ¿Cómo puedo arreglar eso?

Un ejemplo sería apreciado.

¿Has probado esto?

 ALTER TABLE  MODIFY  VARCHAR(65353); 

Esto cambiará el tipo de VARCHAR(65353) a VARCHAR(65353)

 ALTER TABLE  CHANGE COLUMN   VARCHAR(65536); 

Debe enumerar el nombre de la columna dos veces, incluso si no cambia su nombre.

Tenga en cuenta que después de realizar este cambio, el tipo de datos de la columna será MEDIUMTEXT .


Miky D es correcto, el comando MODIFY puede hacer esto de manera más concisa.


MEDIUMTEXT lo que MEDIUMTEXT : una fila de MySQL solo puede tener 65535 bytes (sin contar las columnas BLOB / TEXT). Si intenta cambiar una columna para que sea demasiado grande, haciendo el tamaño total de la fila 65536 o superior, puede recibir un error. Si intenta declarar una columna de VARCHAR(65536) entonces es demasiado grande incluso si es la única columna en esa tabla, por lo que MySQL la convierte automáticamente a un tipo de datos MEDIUMTEXT .

 mysql> create table foo (str varchar(300)); mysql> alter table foo modify str varchar(65536); mysql> show create table foo; CREATE TABLE `foo` ( `str` mediumtext ) ENGINE=MyISAM DEFAULT CHARSET=latin1 1 row in set (0.00 sec) 

VARCHAR(65353) mal tu pregunta original, quieres VARCHAR(65353) , lo cual MySQL puede hacer, siempre que el tamaño de columna sumdo con las otras columnas en la tabla no exceda 65535.

 mysql> create table foo (str1 varchar(300), str2 varchar(300)); mysql> alter table foo modify str2 varchar(65353); ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs