数据库版本太低了,不支持默认值CURRENT_TIMESTAMP,使用如下sql测试
DROP TABLE if EXISTS t_joblevel;
CREATE TABLE t_joblevel(
id INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
name VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '职称名称',
titleLevel ENUM('正高级','副高级','中级','初级','高级') CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '职称等级',
createDate TIMESTAMP NULL COMMENT '创建时间',
enabled TINYINT(1) NULL DEFAULT 1 COMMENT '是否启用',
PRIMARY KEY (id) USING BTREE
) ENGINE = INNODB AUTO_INCREMENT = 9 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
你mysql的版本多少?实测你这个sql在5.5及以下版本会报错,但是在5.6及以上不会报错
SQL语句:
CREATE TABLE t_joblevel(
id INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
name VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NUll COMMENT '职称名称',
titleLevel ENUM('正高级','副高级','中级','初级','高级') CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '职称等级',
createDate TIMESTAMP(0) not NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
enabled TINYINT(1) not NULL DEFAULT 1 COMMENT '是否启用',
PRIMARY KEY (id) USING BTREE
) ENGINE = INNODB AUTO_INCREMENT = 9 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
报错原因:
只有进行not null约束,没有null约束这一说,如果要null直接default null就好。
记得采纳
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!current_timestamp后面不需要指定长度。