回答:
これを試しましたか?
ALTER TABLE <table_name> MODIFY <col_name> VARCHAR(65353);
これにより、col_nameのタイプが次のように変更されますVARCHAR(65353)
ALTER TABLE <tablename> CHANGE COLUMN <colname> <colname> VARCHAR(65536);
名前を変更しない場合でも、列名を2回リストする必要があります。
この変更を行った後、列のデータ型はになることに注意してくださいMEDIUMTEXT
。
Miky Dは正解MODIFY
です。コマンドはこれをより簡潔に行うことができます。
再MEDIUMTEXT
物:MySQLの行は、65535バイト(BLOB /テキスト列をカウントしない)とすることができます。列を大きくして行の合計サイズを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)
テーブルの他の列と合計された列サイズが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