Відповіді:
Ви пробували це?
ALTER TABLE <table_name> MODIFY <col_name> VARCHAR(65353);
Це змінить тип імені col_name наVARCHAR(65353)
ALTER TABLE <tablename> CHANGE COLUMN <colname> <colname> VARCHAR(65536);
Ви повинні перераховувати назву стовпця двічі, навіть якщо ви не змінюєте її назви.
Зауважте, що після внесення цієї зміни типом даних стовпця буде MEDIUMTEXT
.
Miky D правильний, MODIFY
команда може це зробити більш стисло.
Знову MEDIUMTEXT
ж таки: рядок MySQL може містити лише 65535 байт (без урахування стовпців BLOB / TEXT). Якщо ви спробуєте змінити стовпчик на занадто великий, роблячи загальний розмір рядка 65536 або більше, ви можете отримати помилку. Якщо ви спробуєте оголосити стовпчик, VARCHAR(65536)
він є занадто великим, навіть якщо це єдиний стовпець у цій таблиці, тому MySQL автоматично перетворює його у 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)
можете зробити з MySQL, доки розмір стовпців, підсумований до інших стовпців таблиці, не перевищує 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