关于#mysql#的问题:创建这个表格时控制台总会报错,看不出问题是什么原因

img


创建这个表格时控制台总会报错,自己能力有限,看不出问题是什么原因,哪位da shen可以帮忙解决一下

数据库版本太低了,不支持默认值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及以上不会报错

img

img

img

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就好。

记得采纳

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632

current_timestamp后面不需要指定长度。

img