Yanıtlar:
Bunu denedin mi?
ALTER TABLE <table_name> MODIFY <col_name> VARCHAR(65353);
Bu, col_name türünüVARCHAR(65353)
ALTER TABLE <tablename> CHANGE COLUMN <colname> <colname> VARCHAR(65536);
Adını değiştirmeseniz bile sütun adını iki kez listelemeniz gerekir.
Bu değişikliği yaptıktan sonra sütunun veri türünün olacağını unutmayın MEDIUMTEXT
.
Miky D doğrudur, MODIFY
komut bunu daha kısaca yapabilir.
Re MEDIUMTEXT
şey: MySQL satır sadece 65535 bayt (değil sayma BLOB / METİN sütun) olabilir. Bir sütunu çok büyük olacak şekilde değiştirmeye çalışırsanız, satırın toplam boyutunu 65536 veya daha büyük yaparsanız, bir hata alabilirsiniz. Bir sütunu bildirmeye çalışırsanız VARCHAR(65536)
, o tablodaki tek sütun olsa bile çok büyüktür, bu nedenle MySQL otomatik olarak bir MEDIUMTEXT
veri türüne dönüştürür .
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)
Tablodaki diğer sütunlarla toplanan sütun boyutu 65535'i geçmediği sürece, MySQL'in yapabileceği orijinal sorunuzu yanlış okudum.
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