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)로 동작한다는 점을 기억한다. 근본 원인은 데이터의 타입/인코딩이다.
같은 데이터베이스의 다른 항목
- 1215Cannot add foreign key constraint
- 1451Cannot delete or update a parent row: a foreign key constraint fails
- 1452Cannot add or update a child row: a foreign key constraint fails
- 1044Access denied for user to database
- 1264Out of range value for column
- 1052Column 'x' in field list is ambiguous
- 1136Column count doesn't match value count