创建表错误

时间:2016-03-21 09:41:45

标签: mysql

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'

我在删除列后尝试插入。我得到了同样的错误。

我无法找到答案。有什么建议吗?

3 个答案:

答案 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)

您尚未声明字段bf的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;