MySQL 创建轮播图表:解决CURRENT_TIMESTAMP 默认值错误

在创建名为tb_carousel 的轮播图表时,遇到了以下错误:

[Err] 1067 - Invalid default value for 'create_time'

这个错误是因为在创建表时,MySQL 版本不支持在create_time 列上使用CURRENT_TIMESTAMP 作为默认值。

解决方法

可以尝试以下两种方法:

  1. create_time 列的默认值改为'0000-00-00 00:00:00'
CREATE TABLE `tb_carousel`  (
  `carousel_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '首页轮播图主键id',
  `carousel_url` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '轮播图',
  `redirect_url` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '##' COMMENT '点击后的跳转地址(默认不跳转)',
  `carousel_rank` int(11) NOT NULL DEFAULT 0 COMMENT '排序值(字段越大越靠前)',
  `is_deleted` tinyint(4) NOT NULL DEFAULT 0 COMMENT '删除标识字段(0-未删除 1-已删除)',
  `create_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '创建时间',
  `create_user` int(11) NOT NULL DEFAULT 0 COMMENT '创建者id',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
  `update_user` int(11) NULL DEFAULT 0 COMMENT '修改者id',
  PRIMARY KEY (`carousel_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '轮播图表' ROW_FORMAT = Dynamic;
  1. 将 MySQL 版本升级到支持CURRENT_TIMESTAMP 作为默认值的版本:

如果你使用的是较旧版本的 MySQL,升级到较新版本可以解决此问题。

总结

通过将create_time 列的默认值改为'0000-00-00 00:00:00' 或者升级 MySQL 版本,就可以成功创建轮播图表。

MySQL 创建轮播图表:解决`CURRENT_TIMESTAMP` 默认值错误

原文地址: https://www.cveoy.top/t/topic/oSvX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录