Answers:
你有试过吗?
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或更大,则可能会出现错误。如果您尝试声明一列of,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)
只要该列大小与表中其他列的总和不超过65535,MySQL就能做到。
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