首頁 > 資料庫 > mysql教程 > 為什麼在 MySQL 中新增欄位時出現「ERROR 1067 (42000): Invalid Default Value for 'created_at'」?

為什麼在 MySQL 中新增欄位時出現「ERROR 1067 (42000): Invalid Default Value for 'created_at'」?

Barbara Streisand
發布: 2024-12-11 03:50:10
原創
759 人瀏覽過

Why Am I Getting

「錯誤1067 (42000):'created_at' 的預設值無效」解釋

嘗試透過新增表格來修改表格時列時列中,您可能會遇到錯誤:「ERROR 1067 (42000): ‘created_at’的預設值無效。

根本原因

問題源自於稱為 SQL 模式的 MySQL 設定設定。具體來說,就是「NO_ZERO_IN_DATE」和「NO_ZERO_DATE」SQL 模式。這些模式將預設日期和時間戳記值限制為同時包含日期和時間部分,不允許時間部分為「00:00:00」的值。

建立新表時,它會繼承 SQL 模式建立時處於活動狀態。在啟用這些 SQL 模式的情況下,它會影響時間戳記列(如「created_at」)的預設值。在啟動這些 SQL 模式的情況下向表中新增列會嘗試覆寫「created_at」的現有預設值,這是不允許的。

解決方案

要解決對於此問題,您可以透過執行以下命令來識別活動的SQL 模式:

如果存在“NO_ZERO_IN_DATE”和“NO_ZERO_DATE”SQL模式,您可以透過設定SQL模式來停用它們以消除這些限制。您可以使用以下命令以 root 使用者身分全域執行此操作:

對 SQL 模式進行必要的變更後,您應該能夠新增列而不會遇到錯誤。

以上是為什麼在 MySQL 中新增欄位時出現「ERROR 1067 (42000): Invalid Default Value for 'created_at'」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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