Jawaban:
Sudahkah Anda mencoba ini?
ALTER TABLE <table_name> MODIFY <col_name> VARCHAR(65353);
Ini akan mengubah tipe col_name menjadiVARCHAR(65353)
ALTER TABLE <tablename> CHANGE COLUMN <colname> <colname> VARCHAR(65536);
Anda harus mencantumkan nama kolom dua kali, bahkan jika Anda tidak mengubah namanya.
Perhatikan bahwa setelah Anda melakukan perubahan ini, tipe data kolom akan menjadi MEDIUMTEXT
.
Miky D benar, MODIFY
perintah dapat melakukan ini dengan lebih ringkas.
Re MEDIUMTEXT
hal: deretan MySQL dapat hanya 65.535 bytes (tidak termasuk kolom / TULISAN). Jika Anda mencoba mengubah kolom menjadi terlalu besar, membuat ukuran total baris 65536 atau lebih besar, Anda mungkin mendapatkan kesalahan. Jika Anda mencoba mendeklarasikan kolom VARCHAR(65536)
maka itu terlalu besar bahkan jika itu adalah satu-satunya kolom dalam tabel itu, jadi MySQL secara otomatis mengonversinya menjadi MEDIUMTEXT
tipe data.
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)
Saya salah membaca pertanyaan awal Anda, yang Anda inginkan VARCHAR(65353)
, yang dapat dilakukan MySQL, selama ukuran kolom tersebut dijumlahkan dengan kolom lain dalam tabel tidak melebihi 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