13.1.17.3 암시 컬럼 지정 변경
MySQL은 경우에 따라 열 지정을 CREATE TABLE
또는 ALTER TABLE
문에서 지정된 것에서 암시 적으로 변경할 수 있습니다. 이러한 변경은 데이터 형 데이터 형에 관련된 속성 또는 인덱스 지정에 대해 수행 할 수 있습니다.
모든 변경은 65,535 바이트의 내부 행 크기 제한을 준수하기 위해 데이터 형식을 변경하려는 일부 시도가 실패 할 수 있습니다. 섹션 D.10.4 "테이블 컬럼 및 행 크기 제한" 을 참조하십시오.
PRIMARY KEY
의 일부인 컬럼은 그렇게 선언되지 않은 경우에도NOT NULL
로됩니다.테이블이 생성되었을 때,
ENUM
및SET
멤버 값에서 후행 공백이 자동으로 삭제됩니다.MySQL은 다른 SQL 데이터베이스 벤더에 의해 사용되는 특정 데이터 형을 MySQL 형에 맵합니다. 섹션 11.9 "기타 데이터베이스 엔진의 데이터 형식 사용" 을 참조하십시오.
특정 스토리지 엔진은 허용되지 않는 인덱스 유형을 지정하기 위해
USING
절을 포함한 그 엔진이 쿼리 결과에 영향을주지 않고 사용할 수있는 사용 가능한 다른 인덱스 타입이 존재하는 경우, 엔진은 그 사용 가능한 유형을 사용합니다.엄격한 SQL 모드가 활성화되어 있지 않은 경우, 길이 지정이 65535보다 큰
VARCHAR
컬럼은TEXT
로 변환되고, 길이 지정이 65535보다 큰VARBINARY
컬럼은BLOB
으로 변환됩니다. 그렇지 않은 경우에는 이러한 모든 경우에도 오류가 발생합니다.문자 데이터 형식에
CHARACTER SET binary
속성을 지정하면 열은 대응하는 이진 데이터 형식으로 작성됩니다. 즉,CHAR
는BINARY
되고,VARCHAR
는VARBINARY
되고TEXT
는BLOB
입니다.ENUM
및SET
데이터 형에서는이되지 않고 선언 된대로 작성됩니다. 이 정의를 사용하여 테이블을 지정했다고합니다.CREATE TABLE t ( c1 VARCHAR (10) CHARACTER SET binary, c2 TEXT CHARACTER SET binary, c3 ENUM ( 'a', 'b', 'c') CHARACTER SET binary );
결과 테이블이 정의가 포함되어 있습니다.
CREATE TABLE t ( c1 VARBINARY (10) c2 BLOB, c3 ENUM ( 'a', 'b', 'c') CHARACTER SET binary );
MySQL이 지정된 것 이외의 데이터 형식을 사용했는지 여부를 확인하려면 테이블을 생성하거나 수정 한 후, DESCRIBE
나 SHOW CREATE TABLE
문을 발행합니다.
myisampack을 사용하여 테이블을 압축하는 경우 기타 특정 데이터 형의 변경이 발생하는 경우가 있습니다. 섹션 15.2.3.3 "압축 테이블의 특징" 을 참조하십시오.