>  기사  >  데이터 베이스  >  타임스탬프 필드가 있는 테이블을 생성할 때 \"create_date\'\에 대한 잘못된 기본값" 오류가 발생하는 이유는 무엇입니까?

타임스탬프 필드가 있는 테이블을 생성할 때 \"create_date\'\에 대한 잘못된 기본값" 오류가 발생하는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-30 11:37:27304검색

Why am I getting the

타임스탬프 필드에 대한 잘못된 기본값

다음이 포함된 테이블을 생성하려고 하면 "'create_date'에 대한 잘못된 기본값" 오류가 발생합니다. 기본값은 '0000-00-00 00:00:00'인 타임스탬프 필드입니다. 이 오류는 SQL 모드 - NO_ZERO_DATE에 의해 발생합니다.

NO_ZERO_DATE 모드는 '0000-00-00'을 유효한 날짜로 삽입하는 것을 방지합니다. 엄격 모드에서는 IGNORE 옵션을 사용해도 이 값이 금지됩니다. 엄격하지 않은 모드에서는 날짜가 허용될 수 있지만 경고가 생성됩니다.

이 오류를 해결하려면 NO_ZERO_DATE 모드를 비활성화하거나 타임스탬프 필드에 다른 기본값을 사용하세요.

<code class="sql">SET SQL_MODE = 'ALLOW_INVALID_DATES';</code>

또는 타임스탬프 필드에 유효한 기본값을 지정하세요.

<code class="sql">CREATE TABLE IF NOT EXISTS `erp`.`je_menus` (
    `id` INT(11) NOT NULL AUTO_INCREMENT ,
    `name` VARCHAR(100) NOT NULL ,
    `description` VARCHAR(255) NOT NULL ,
    `live_start_date` DATETIME NULL DEFAULT NULL ,
    `live_end_date` DATETIME NULL DEFAULT NULL ,
    `notes` VARCHAR(255) NULL ,
    `create_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
    `created_by` INT(11) NOT NULL ,
    `update_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP  ,
    `updated_by` INT(11) NOT NULL , 
    `status` VARCHAR(45) NOT NULL ,
    PRIMARY KEY (`id`) ) 
    ENGINE = InnoDB;</code>

위 내용은 타임스탬프 필드가 있는 테이블을 생성할 때 \"create_date\'\에 대한 잘못된 기본값" 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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