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

1366: Incorrect string/integer value for column

MySQL

의미

컬럼의 타입 또는 character set과 호환되지 않는 값이 컬럼에 삽입되었다. 보통 문자 인코딩 또는 타입 불일치로 발생한다.

원인

latin1 컬럼에 4바이트 이모지/문자(utf8mb4) 기록, 숫자 컬럼에 비숫자 텍스트 입력, 잘못된 연결 charset, 또는 예상과 다른 타입의 값 전송.

해결 방법

문자 문제는 컬럼/테이블을 utf8mb4로 변환한다: ALTER TABLE my_table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci 그리고 연결 charset을 utf8mb4로 설정한다. 숫자 필드는 애플리케이션에서 타입을 검증한다. 서버가 strict SQL 모드(STRICT)로 동작한다는 점을 기억한다. 근본 원인은 데이터의 타입/인코딩이다.

DBAtlas에서 열기 →

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