"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > MySQL에서 \"create_date\' 필드에 대한 잘못된 기본값\"이 나타나는 이유는 무엇이며 어떻게 해결할 수 있습니까?

MySQL에서 \"create_date\' 필드에 대한 잘못된 기본값\"이 나타나는 이유는 무엇이며 어떻게 해결할 수 있습니까?

2024년 11월 21일에 게시됨
검색:678

Why Am I Getting \

"'create_date' 필드에 대한 잘못된 기본값: NO_ZERO_DATE SQL 모드 이해"

최근 SQL create 문에서 오류가 발생했습니다. 다음 SQL에 대해 "'create_date'에 대한 기본값이 잘못되었습니다.":

CREATE  TABLE IF NOT EXISTS `erp`.`je_menus` (
    ...
    `create_date` TIMESTAMP NOT NULL DEFAULT  '0000-00-00 00:00:00',
    ...
) 

이 오류를 해결하려면 MySQL SQL 모드, 특히 NO_ZERO_DATE 설정을 이해하는 것이 중요합니다. 이 설정은 엄격 모드에서 '0000-00-00'을 유효한 날짜로 사용하는 것을 허용하지 않습니다. 이는 SQL이 부울 값을 숫자(예: TRUE = 1, FALSE = 0)로 처리하고 날짜를 참조 지점 이후의 일수를 나타내는 정수로 저장하기 때문에 발생합니다. 결과적으로 '0000-00-00'을 사용하면 부울 값에 사용되는 '0' 값과 충돌합니다.

이 문제를 해결하려면 다음 옵션을 고려하십시오.

  • NO_ZERO_DATE 모드 비활성화: SQL 문에 'SET SQL_MODE = "NO_ZERO_IN_DATE";' 문을 포함합니다. 테이블을 만들기 전에. 이는 NO_ZERO_DATE 모드를 일시적으로 비활성화하여 '0000-00-00'을 create_date의 기본값으로 정의할 수 있도록 합니다.
  • 유효한 기본값 사용: '0000-00-00 00 바꾸기 :00:00'을 원하는 날짜에 따라 'CURRENT_TIMESTAMP' 또는 NULL과 같은 SQL 문의 유효한 기본 날짜로 사용합니다. 동작.
  • IGNORE 옵션 사용: '0000-00-00 00:00:00'을 반드시 사용해야 하는 경우 SQL 문에 IGNORE 옵션을 포함합니다. 그러나 이는 잠재적인 데이터 불일치로 이어질 수 있으므로 일반적으로 권장되지 않습니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3