>데이터 베이스 >MySQL 튜토리얼 >MySQL에서 \'create_date\' 필드에 대한 잘못된 기본값\'이 나타나는 이유는 무엇이며 어떻게 해결할 수 있습니까?

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

DDD
DDD원래의
2024-10-26 22:41:30490검색

Why Am I Getting

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

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

<code class="sql">CREATE  TABLE IF NOT EXISTS `erp`.`je_menus` (
    ...
    `create_date` TIMESTAMP NOT NULL DEFAULT  '0000-00-00 00:00:00',
    ...
) </code>

이 오류를 해결하려면 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 옵션을 포함하세요. 그러나 이는 잠재적인 데이터 불일치로 이어질 수 있으므로 일반적으로 권장되지 않습니다.

위 내용은 MySQL에서 \'create_date\' 필드에 대한 잘못된 기본값\'이 나타나는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.