기존 MySQL 데이터베이스로 작업할 때 문자 변경으로 인해 문제가 발생하는 것은 드문 일이 아닙니다. 세트 및 MySQL 버전. 이 특정 문제는 날짜/시간 열의 문자 집합 수정 및 "잘못된 날짜/시간 값"에 관한 오류 메시지 발생과 관련이 있습니다.
문제 설명:
분석:
이 문제의 근본 원인은 생성된 열에 잘못된 날짜/시간 값, 특히 0 값 '0000'이 존재하기 때문입니다. -00-00 00:00:00'. MySQL 5.7에는 날짜/시간 값에 대한 더 엄격한 유효성 검사 규칙이 있으며 이 잘못된 값으로 인해 열 수정이 실패하게 됩니다.
잠재적 해결 방법:
1. Null 값 식별 및 업데이트:
생성된 열의 문자 집합을 변경하기 전에 모든 Null 값을 식별하고 유효한 날짜/시간으로 업데이트하는 것이 중요합니다. 이는 다음 쿼리를 사용하여 수행할 수 있습니다.
UPDATE users SET created = NULL WHERE created IS NULL;
2. 잘못된 날짜 시간 값을 Null로 변환:
생성된 열에 Null 값이 없으면 잘못된 날짜 시간 값 '0000-00-00 00:00:00'을 Null로 변환해야 합니다. 이는 다음 쿼리를 사용하여 수행할 수 있습니다.
UPDATE users SET created = NULL WHERE CAST(created AS CHAR(20)) = '0000-00-00 00:00:00';
3. 열 문자 집합 변경:
잘못된 날짜/시간 값이 해결되면 이제 first_name 열의 문자 집합을 변경하는 것이 안전합니다:
ALTER TABLE users MODIFY first_name varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
4 . 추가 고려 사항:
위 내용은 MySQL 테이블 열 문자 집합을 변경하면 \'잘못된 날짜/시간 값\' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!