GKLBB

当你经历了暴风雨,你也就成为了暴风雨

导航

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

posted on 2025-10-27 19:33  GKLBB  阅读(0)  评论(0)    收藏  举报