programing

MySQL 테이블의 열 크기를 수정하려면 어떻게 해야 합니까?

yoursource 2022. 9. 23. 22:47
반응형

MySQL 테이블의 열 크기를 수정하려면 어떻게 해야 합니까?

테이블을 만들고 실수로 테이블 위에 올려놨습니다.varchar로서 길이하다.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명령어를 사용하면 이 작업을 보다 간결하게 수행할 수 있습니다.


MEDIUMTEXTthing: MySQL 행은 65535바이트(BLOB/TEXT 열 제외)만 사용할 수 있습니다.열을 너무 크게 변경하여 행의 총 크기를 65536 이상으로 하면 오류가 발생할 수 있습니다.의 컬럼을 선언하려고 하면VARCHAR(65536)테이블에서 유일한 열이라도 너무 커서 MySQL이 자동으로 변환합니다.MEDIUMTEXTdata type 입니다.

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
ALTER TABLE {table_name} MODIFY [COLUMN] {column_name} {column_type} {defaults and/or not-null};

(포함)COLUMN는 옵션입니다).

주의: 컬럼이 다음과 같이 작성된 경우NOT NULL기타에 기재할 필요가 있는 경우가 있습니다.MODIFY그들을 잃지 않기 위한 진술입니다.

언급URL : https://stackoverflow.com/questions/1279568/how-can-i-modify-the-size-of-column-in-a-mysql-table

반응형