我遇到此错误的问题。
这是创建表的代码
CREATE TABLE `qa`.`question`(
`id` INT(9) NOT NULL AUTO_INCREMENT,
`username` VARCHAR(256) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`password` VARCHAR(256) CHARACTER SET utf16 COLLATE utf16_general_ci NOT NULL,
`email` VARCHAR(512) NOT NULL,
`phone` INT(11) NOT NULL,
`content` TEXT NOT NULL,
`status` ENUM(0) NOT NULL,
PRIMARY KEY(`id`)
) ENGINE = InnoDB CHARSET = utf8 COLLATE utf8_general_ci;
我看到同样的问题,但在我的代码中都没有出现。
我也考虑默认值,但我收到了这个:
id的值无效(错误#1067)
答案 0 :(得分:0)
我无法重现你得到的错误。我得到了一个不同的错误:
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在'0)NOT NULL附近使用正确的语法,
这是因为ENUM
的元素必须是字符串,而不是数字。我改成了:
`status` ENUM('OK', 'FAIL') NOT NULL,
并且表创建成功。
如果您尝试将默认值分配给id
列,则会出现错误,因为它也声明使用AUTO_INCREMENT
。见#1067 - Invalid default value for 'bonusid' how can i fix this error?