문제

나는 테이블을 만들고 우연히 넣었다 varchar 길이 AS 300 대신에 65353. 어떻게 해결할 수 있습니까?

예를 들어 감사하겠습니다.

도움이 되었습니까?

해결책

이것을 시도해 보셨습니까?

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 명령은 이것을보다 간결하게 수행 할 수 있습니다.


re 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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top