MySQL 创建轮播图表 `tb_carousel`
创建轮播图表 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字段为当前时间戳。
原文地址: https://www.cveoy.top/t/topic/oSwa 著作权归作者所有。请勿转载和采集!