为什么我的查询不能让我分配主键?

时间:2017-09-23 21:12:37

标签: mysql sql sequelpro

请注意,我对SQL很新。

我正在使用MySQL并使用应用程序SequelPro。

当我尝试制作表格时收到此错误:

“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以便在'(id)附近使用正确的语法 )ENGINE = InnoDB DEFAULT CHARSET = utf8'在第4行“

这是我用来制作表格的代码:

CREATE TABLE klout_scores_3 (
    id INT(11) NOT NULL AUTO_INCREMENT,
    score INT(11)
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2 个答案:

答案 0 :(得分:3)

score INT(11)

您希望在该行的末尾添加逗号,

答案 1 :(得分:1)

您的查询的解释如下:

CREATE TABLE klout_scores_3 (
    id INT(11) NOT NULL AUTO_INCREMENT,
    score INT(11) PRIMARY KEY
    (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

(id)部分确实让MySQL感到困惑,而且它正在引发错误。虽然在,部分之后添加INT(11)会修复它,但更好的解决方案是移动声明:

CREATE TABLE klout_scores_3 (
    id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    score INT(11)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

有一点关于你有一个像klout_scores_3的表名,因为这表明你有N个这样的表。关系数据库设计和database normalization 规则强烈对此不满意,您应该有一个单独的表格,其中包含某种..._id列,以将得分与3标识的任何记录相关联。