2013-07-13 53 views
0

我曾尝试以下查询(它不是我自己写的,但是包括从互联网源代码)MySQL的主键必须写在括号

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 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') ENGINE=InnoDB DEFAULT CHARSET=utf8' at line 5

回答

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; 

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

+1

虽然这是不坏张贴问题+答案你已经遇到了一些问题,我建议编辑问题和答案,以便问题部分真的只是问题的答案,答案部分答案。 –

+0

更改了问题。现在它只包含问题描述。单独提出我的回应。 – user2513149

1

MySQL CREATE TABLE syntax,你之前和列的列表为约束后需要括号:

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

相关问题