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