创建轮播图表 tb_carousel

错误信息:

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

错误原因:

update_time 字段的默认值设置为 CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,但 datetime 数据类型不支持此默认值。

解决方案:

update_time 字段的数据类型改为 timestamp,并将默认值设为 CURRENT_TIMESTAMP

正确 SQL 语句:

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` timestamp 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;

解释:

  • timestamp 数据类型可以自动更新为当前时间戳,适用于记录数据修改时间。
  • CURRENT_TIMESTAMP 为当前时间戳,用于设置 update_time 字段的默认值。
  • ON UPDATE CURRENT_TIMESTAMP 表示每次更新数据时,自动更新 update_time 字段为当前时间戳。
MySQL 创建轮播图表 `tb_carousel`

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

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