CREATE TABLE `test` (
`a` int NOT NULL,
`b` varchar DEFAULT NULL,
`c` varchar(64) NOT NULL,
`d` int DEFAULT 0,
`e` varchar(7) DEFAULT NULL,
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`f` varchar DEFAULT NULL,
PRIMARY KEY (`a`,`c`,`timestamp`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
如果我运行此查询,则会收到以下错误。
错误1064(42000):您的SQL语法有错误;检查 手册,对应右边的MySQL服务器版本 要使用的语法' DEFAULT NULL,
emailId
varchar(64)NOT NULL,
score
int DEFAULT 0,`stat'
我在删除列后尝试插入。我得到了同样的错误。
我无法找到答案。有什么建议吗?
答案 0 :(得分:1)
varchar中缺少长度,请将varchar长度设置为以下 -
CREATE TABLE `test` (
`a` int NOT NULL,
`b` varchar(50) DEFAULT NULL,
`c` varchar(64) NOT NULL,
`d` int DEFAULT 0,
`e` varchar(7) DEFAULT NULL,
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`f` varchar(50) DEFAULT NULL,
PRIMARY KEY (`a`,`c`,`timestamp`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
答案 1 :(得分:0)
您尚未声明字段b
和f
的varchar长度:
`b` varchar DEFAULT NULL,
声明字段的长度,如
`b` varchar(10) DEFAULT NULL,
答案 2 :(得分:0)
你错过了Varchar的长度,尝试给出varchar的长度,
这是查询
CREATE TABLE `test` (
`a` int NOT NULL,
`b` varchar(40) DEFAULT NULL,
`c` varchar(64) NOT NULL,
`d` int DEFAULT 0,
`e` varchar(7) DEFAULT NULL,
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`f` varchar(40) DEFAULT NULL,
PRIMARY KEY (`a`,`c`,`timestamp`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;