修正MySQL 中TIMESTAMP 欄位的無效預設值
嘗試使用TIMESTAMP 欄位建立表格並指定預設值' 0000-00-00 000 :00:00',您可能會遇到錯誤「'create_date'的預設值無效。」這通常是由於MySQL 伺服器SQL 模式設定造成的。
說明
NO_ZERO_DATE SQL 模式強制嚴格處理零日期。它會阻止將“0000-00-00”插入為有效日期,並將其視為無效值。
解決方案
要解決該錯誤,您可以:
停用NO_ZERO_DATE SQL 模式:
<code class="mysql">SET SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ENGINE_SUBSTITUTION';</code>停用NO_ZERO_DATE SQL 模式:
<code class="mysql">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 '0000-00-00 00:00:00' IGNORE, `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>
以上是當我使用 `0000-00-00 00:00:00` 作為 MySQL 中 TIMESTAMP 欄位的預設值時,為什麼會收到「Invalid default value for 'create_date'」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!