首頁 > 資料庫 > mysql教程 > 為什麼在建立帶有時間戳欄位的表時出現「create_date 預設值無效」錯誤?

為什麼在建立帶有時間戳欄位的表時出現「create_date 預設值無效」錯誤?

Susan Sarandon
發布: 2024-10-30 11:37:27
原創
401 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板