我试图将一列添加到我的表中并使其成为外键,但我不断收到此错误:


  错误1064(42000):您的SQL语法有错误;检查
  与您的MySQL服务器版本相对应的手册
  在'FOREIGN KEY(idplayer)附近使用的语法
  第1行的玩家(playersid)'


下面是我在alter语句之前的代码:

CREATE TABLE transactions
  (
     transid  INT UNSIGNED NOT NULL AUTO_INCREMENT,
     type     VARCHAR(20),
     fromteam VARCHAR(30),
     toteam   VARCHAR(30),
     idplayer INT UNSIGNED NOT NULL,
     PRIMARY KEY(transid)
  );


现在,我尝试更改idplayer并将其设置为外键:

ALTER TABLE transactions
MODIFY idplayer INT UNSIGNED NOT NULL
FOREIGN KEY(idplayer) REFERENCES players(playersid)


请协助将是巨大的。

最佳答案

首先,您在NOT NULL之后缺少逗号,其次,您需要告诉mysql添加CONSTRAINT。试试看:

ALTER TABLE `events`
MODIFY idplayer INT UNSIGNED NOT NULL,
ADD CONSTRAINT `FK_Name` FOREIGN KEY (idplayer) REFERENCES players(playersid);

10-08 04:30