DBAtlas · 데이터베이스 운영 아틀라스

1406: Data too long for column

MySQL

의미

컬럼의 정의된 최대 길이보다 긴 값이 기록되었다. 예를 들어 20자 문자열은 VARCHAR(10) 컬럼에 들어가지 않는다.

원인

데이터에 비해 너무 작은 컬럼 폭. 멀티바이트 문자 집합(utf8mb4)의 문자가 예상보다 많은 공간을 차지. 연결(concatenation) 결과가 길어짐. strict SQL 모드 활성화(그렇지 않으면 값이 조용히 잘린다).

해결 방법

컬럼을 넓힌다: ALTER TABLE my_table MODIFY my_column VARCHAR(255); 매우 긴 내용에는 TEXT 타입을 검토한다. 값을 줄여야 한다면 애플리케이션에서 또는 SUBSTRING으로 자른다. 넘치는 행을 찾는다: SELECT * FROM my_table WHERE CHAR_LENGTH(my_column) > 10; 입력 검증을 추가한다.

DBAtlas에서 열기 →

같은 데이터베이스의 다른 항목