首頁 >資料庫 >mysql教程 >為什麼我無法將'0000-00-00 00:00:00”設定為時間戳欄位的預設值?

為什麼我無法將'0000-00-00 00:00:00”設定為時間戳欄位的預設值?

Linda Hamilton
Linda Hamilton原創
2024-10-27 02:27:30369瀏覽

Why Can't I Set '0000-00-00 00:00:00' as the Default Value for a Timestamp Field?

了解錯誤訊息:「create_date」時間戳欄位的預設值無效

提供的SQL 語句嘗試建立一個帶有時間戳欄位(create_date) 的表,此欄位具有預設值為“0000-00-00 00:00:00”。但是,「NO_ZERO_DATE」SQL 模式禁止使用該值作為有效日期。

為什麼該模式禁止「0000-00-00 00:00:00」?

此模式執行更嚴格的日期驗證規則。它可以防止插入零值日期,例如“0000-00-00”,這可能會導致資料分析不一致和錯誤。

如何解決錯誤?

To要解決該錯誤,您有兩個選擇:

  1. 修改預設值:設定有效的時間戳值('0000-00-00 00:00:00'除外)作為create_date 欄位的預設值。
  2. 停用NO_ZERO_DATE 模式:

    <code class="sql">SET SQL_MODE=(SELECT REPLACE(@@SQL_MODE, 'NO_ZERO_DATE', ''));</code>

    這將暫時停用此模式,讓您建立表格使用「0000-00-00 00:00: 00”預設值。但是,之後重新啟用該模式以確保資料完整性非常重要。

以上是為什麼我無法將'0000-00-00 00:00:00”設定為時間戳欄位的預設值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn