我收到SQL语法错误,我不确定发生了什么

时间:2014-02-03 04:22:31

标签: mysql sql phpmyadmin syntax-error

编辑:用逗号修复了一些内容,但我仍然收到错误

我一直在强调这个SQL查询三天。

CREATE TABLE status_likes (
  username VARCHAR(255) NOT NULL,
  id INT NOT NULL,
  PRIMARY KEY (username,id),
  FOREIGN KEY id REFERENCES status (id),
  FOREIGN KEY username REFERENCES users (username)
)

它一直给我这个错误:

  

#1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法   靠近'REFERENCES statusid)FOREIGN KEY用户名参考用户   (用户名),'第5行

有谁知道这是什么问题?

谢谢!

3 个答案:

答案 0 :(得分:3)

索引中的列名必须在括号中。您在第一个FOREIGN KEY之后也错过了一个逗号,并在第二个之后有一个额外的逗号。

CREATE TABLE status_likes (
  username VARCHAR(255) NOT NULL,
  id INT NOT NULL,
  PRIMARY KEY (username,id),
  FOREIGN KEY (id) REFERENCES status (id),
  FOREIGN KEY (username) REFERENCES users (username)
)

DEMO

答案 1 :(得分:1)

在具有,

的CREATE语句的最后一行之后删除FOREIGN KEY username REFERENCES users (username),
CREATE TABLE status_likes (
  username VARCHAR(255) NOT NULL,
  id INT NOT NULL,
  PRIMARY KEY (username,id),
  FOREIGN KEY (id) REFERENCES status (id),
  FOREIGN KEY (username) REFERENCES users (username)
)

答案 2 :(得分:0)

尝试这样,删除逗号。

CREATE TABLE status_likes (
  username VARCHAR(255) NOT NULL,
  id INT NOT NULL,
  PRIMARY KEY (username,id),
  FOREIGN KEY (id) REFERENCES status (id)
  FOREIGN KEY (username) REFERENCES users (username)
)