【问题标题】:MySql tables, error #1064 & error #1068 Multiple primary key defined [closed]MySql 表,错误 #1064 和错误 #1068 定义了多个主键 [关闭]
【发布时间】:2013-05-22 16:22:41
【问题描述】:

我在尝试安装 MySql 表时遇到错误,错误:

“#1064 - 你的 SQL 语法有错误”

和错误:

"#1068 - 定义了多个主键"

这是数据库:

CREATE TABLE messages (
msg_id INT PRIMARY KEY AUTO_INCREMENT,
message VARCHAR(200),
uid_fk INT(10),
ip VARCHAR(45),
created INT(10),
uploads VARCHAR(50),
profile_uid INT(10)

PRIMARY KEY (`msg_id`),
KEY `uid_fk` (`uid_fk`)

);


CREATE TABLE comments (
com_id INT PRIMARY KEY AUTO_INCREMENT,
comment VARCHAR(200),
msg_id_fk INT(10),
uid_fk INT(10),
ip VARCHAR(45),
created INT(10),

PRIMARY KEY (`com_id`),
KEY `msg_id_fk` (`msg_id_fk`),
KEY `uid_fk` (`uid_fk`)

);


CREATE TABLE likes (
like_id INT PRIMARY KEY AUTO_INCREMENT,
msg_id_fk INT(10),
uid_fk INT(10),

PRIMARY KEY (`like_id`),
KEY `msg_id_fk` (`msg_id_fk`),
KEY `uid_fk` (`uid_fk`)

);


CREATE TABLE user_uploads (
id INT PRIMARY KEY AUTO_INCREMENT,
image_path VARCHAR(500),
uid_fk INT(10),

PRIMARY KEY (`id`),
KEY `uid_fk` (`uid_fk`)

);


CREATE TABLE follow_user (
fid INT PRIMARY KEY AUTO_INCREMENT,
uid_fk INT(10),
following_uid INT(10),

PRIMARY KEY (`fid`),
KEY `uid_fk` (`uid_fk`)

);

这些是错误图像:

如何解决?

【问题讨论】:

  • 如果您在 列定义 中定义 PRIMARY KEY 就像在 fid INT PRIMARY KEY AUTO_INCREMENT 中一样,您不能也不需要在稍后的 CREATE TABLE 语句中通过 PRIMARY KEY (col) 重新定义它。
  • 我不会给出答案,因为我不确定,但我认为您不能为不同表上的键提供相同的名称...

标签: mysql sql create-table


【解决方案1】:

要么使用内联语法 (msg_id INT PRIMARY KEY AUTO_INCREMENT),要么在之后声明它 (PRIMARY KEY (com_id)),不能同时使用:它们冲突。

【讨论】:

    【解决方案2】:

    消息表中的语法错误只是profile_uid INT(10) 行末尾缺少逗号。

    【讨论】:

      猜你喜欢
      • 2021-12-06
      • 2020-08-17
      • 1970-01-01
      • 1970-01-01
      • 2011-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-16
      相关资源
      最近更新 更多