MySQL 错误: 'TIMESTAMP(0)' 语法错误解决方案 - 分类表创建
MySQL 错误: 'TIMESTAMP(0)' 语法错误解决方案 - 分类表创建
在创建 MySQL 分类表 tb_goods_category 时,你可能会遇到以下错误信息:
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
`create_use' at line 8
这个错误通常是由于使用了 TIMESTAMP(0) 语法引起的。TIMESTAMP(0) 是一个旧版本的 MySQL 语法,在现代版本中已经不再支持。为了解决这个问题,需要将 TIMESTAMP(0) 替换为 DATETIME,并去掉后面的 (0)。
以下是修改后的正确内容:
CREATE TABLE `tb_goods_category` (
`category_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '分类id',
`category_level` tinyint(4) NOT NULL DEFAULT 0 COMMENT '分类级别(1-一级分类 2-二级分类 3-三级分类)',
`parent_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '父分类id',
`category_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '分类名称',
`category_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 CURRENT_TIMESTAMP COMMENT '创建时间',
`create_user` int(11) NOT NULL DEFAULT 0 COMMENT '创建者id',
`update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`update_user` int(11) NULL DEFAULT 0 COMMENT '修改者id',
PRIMARY KEY (`category_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 107 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '分类表' ROW_FORMAT = Dynamic;
解释:
DATETIME数据类型用于存储日期和时间信息,与TIMESTAMP相比,它没有时间戳范围的限制。CURRENT_TIMESTAMP用于获取当前时间戳。
通过这些修改,你就可以成功创建 tb_goods_category 分类表,并避免 TIMESTAMP(0) 语法错误。
原文地址: https://www.cveoy.top/t/topic/oSwB 著作权归作者所有。请勿转载和采集!