MySQL 创建轮播图表:解决`CURRENT_TIMESTAMP` 默认值错误
MySQL 创建轮播图表:解决CURRENT_TIMESTAMP 默认值错误
在创建名为tb_carousel 的轮播图表时,遇到了以下错误:
[Err] 1067 - Invalid default value for 'create_time'
这个错误是因为在创建表时,MySQL 版本不支持在create_time 列上使用CURRENT_TIMESTAMP 作为默认值。
解决方法
可以尝试以下两种方法:
- 将
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;
- 将 MySQL 版本升级到支持
CURRENT_TIMESTAMP作为默认值的版本:
如果你使用的是较旧版本的 MySQL,升级到较新版本可以解决此问题。
总结
通过将create_time 列的默认值改为'0000-00-00 00:00:00' 或者升级 MySQL 版本,就可以成功创建轮播图表。
原文地址: https://www.cveoy.top/t/topic/oSvX 著作权归作者所有。请勿转载和采集!