В некотором программировании я предполагаю, что математика была бы самой полезной, но не быть программистом. Я удачлив, если я могу добавить 2+2 без моего удобного щегольского калькулятора.
Вы пробовали это?
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