MySQL主键必须写在括号中

时间:2013-07-13 20:45:06

标签: mysql primary-key mysql-error-1064

我尝试了以下查询(它不是由我自己编写的,但是包含在来自Internet的源代码中)

CREATE TABLE `city_list_count` (
  `city_created` date NOT NULL,
  `count_created` int(8) unsigned NOT NULL,
  PRIMARY KEY `city_created` 
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

它给了我以下错误:

  

1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法   靠近')ENGINE = InnoDB DEFAULT CHARSET = utf8'在第5行

2 个答案:

答案 0 :(得分:1)

根据MySQL CREATE TABLE syntax,您需要在约束列列表之前和之后使用括号:

  

[CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...)   [index_option] ...

答案 1 :(得分:0)

尝试不同的事情我已经指出错误的原因是主键字段名称应该用括号括起来:

CREATE TABLE `city_list_count` (
  `city_created` date NOT NULL,
  `count_created` int(8) unsigned NOT NULL,
  PRIMARY KEY (`city_created`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

我无法在任何地方找到解释。但是,它对我有用。 如果有人遇到同样的麻烦,只是想和别人分享。