常見問題處理 --- Invalid default value for 'created time'
錯誤原因
在 MySQL 5.6.5 之前:
-
只有
TIMESTAMP類型支持CURRENT_TIMESTAMP作為默認值 -
DATETIME類型不支持CURRENT_TIMESTAMP默認值
解決方案
方案1:使用 TIMESTAMP 類型(推薦)
sql
CREATE TABLE IF NOT EXISTS `contact_info1` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '唯一標識',
`contact_phone` varchar(50) DEFAULT NULL COMMENT '聯系信息中的電話號碼',
`contact_address` varchar(255) DEFAULT NULL COMMENT '聯系地址',
`map_url` varchar(255) DEFAULT NULL COMMENT '地圖的URL地址',
`created_time` timestamp DEFAULT CURRENT_TIMESTAMP COMMENT '記錄創建時間',
`updated_time` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '記錄更新時間',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='招商引資聯系信息表';
方案2:升級 MySQL 到 5.6.5 或更高版本
MySQL 5.6.5+ 支持 DATETIME 使用 CURRENT_TIMESTAMP
方案3:手動設置默認值(不推薦)
sql
CREATE TABLE IF NOT EXISTS `contact_info1` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '唯一標識',
`contact_phone` varchar(50) DEFAULT NULL COMMENT '聯系信息中的電話號碼',
`contact_address` varchar(255) DEFAULT NULL COMMENT '聯系地址',
`map_url` varchar(255) DEFAULT NULL COMMENT '地圖的URL地址',
`created_time` datetime DEFAULT NULL COMMENT '記錄創建時間',
`updated_time` datetime DEFAULT NULL COMMENT '記錄更新時間',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='招商引資聯系信息表';
檢查 MySQL 版本
sql
SELECT VERSION();
建議
使用 方案1 將 DATETIME 改為 TIMESTAMP 是最簡單直接的解決方案。
浙公網安備 33010602011771號