当前位置: 首页 > news >正文

常见问题处理 --- Invalid default value for created time

常见问题处理 --- 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 是最简单直接的解决方案。