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) 语法错误。

MySQL 错误: 'TIMESTAMP(0)' 语法错误解决方案 - 分类表创建

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

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