> 데이터 베이스 > MySQL 튜토리얼 > MySQL ERROR 1067: 'created_at'에 대한 잘못된 기본값이 나타나는 이유는 무엇입니까?

MySQL ERROR 1067: 'created_at'에 대한 잘못된 기본값이 나타나는 이유는 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-04 08:40:11
원래의
881명이 탐색했습니다.

Why Am I Getting MySQL ERROR 1067: Invalid Default Value for 'created_at'?

MySQL 오류 1067 문제 해결: 새 열을 추가하는 동안 'created_at'에 대한 잘못된 기본값

새 열을 추가하여 테이블 변경 시도 열에 "ERROR 1067 (42000): 오류가 발생할 수 있습니다. 'created_at'에 대한 기본값이 잘못되었습니다." 이 오류는 타임스탬프 열을 변경할 때 일반적으로 발생합니다. 그러나 타임스탬프가 아닌 열을 추가할 때도 이 문제가 발생할 수 있습니다.

원인:

이 오류는 MySQL의 sql_modes 설정으로 인해 발생합니다. 특히 "NO_ZERO_IN_DATE" 및 "NO_ZERO_DATE" 모드는 기본 타임스탬프 값 '0000-00-00' 및 '00:00:00'이 Created_at 및 update_at 열에 저장되는 것을 방지합니다.

해결책 :

오류를 해결하려면 sql_modes 설정의 "NO_ZERO_IN_DATE" 및 "NO_ZERO_DATE" 모드.

단계:

  1. 현재 확인 sql_modes:

    show variables like 'sql_mode' ; 
    로그인 후 복사
  2. 위반 모드 제거:

    • 현재 모드를 일시적으로 비활성화합니다. 세션:

      SET SESSION sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
      로그인 후 복사
    • 전역 모드를 영구적으로 설정:

      SET GLOBAL sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
      로그인 후 복사
  3. 재시도 추가 열:

    ALTER TABLE investments ADD bank TEXT;
    로그인 후 복사

참고:

최신 버전의 MySQL에서 기본 sql_mode에는 "NO_ZERO_IN_DATE" 및 "NO_ZERO_DATE가 포함됩니다. " 모드. 따라서 이 오류가 발생할 경우 정기적으로 sql_modes 설정을 확인하고 필요한 조정을 수행하는 것이 중요합니다.

위 내용은 MySQL ERROR 1067: 'created_at'에 대한 잘못된 기본값이 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿