」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 為什麼我在 MySQL 中收到“\'create_date\'欄位的預設值無效”以及如何修復它?

為什麼我在 MySQL 中收到“\'create_date\'欄位的預設值無效”以及如何修復它?

發佈於2024-11-21
瀏覽:544

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' 在SQL 語句中使用有效的預設日期,例如'CURRENT_TIMESTAMP' 或NULL,具體取決於
  • 使用IGNORE 選項:如果您絕對需要使用“0000-00-00 00:00:00”,請在 SQL 語句中包含 IGNORE 選項。但是,這可能會導致潛在的數據不一致,通常不建議這樣做。
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3