试图修改MySQL中的表时出错

试图修改MySQL中的表时出错,mysql,Mysql,我试图向表中添加一列,并将其设置为外键,但始终出现以下错误: 错误1064 42000:您的SQL语法有错误;检查 与右边的MySQL服务器版本相对应的手册 使用近“外部KeyIdLayer引用”的语法 第1行的playersplayersid' 下面是我在alter语句之前的代码: CREATE TABLE transactions ( transid INT UNSIGNED NOT NULL AUTO_INCREMENT, type VARCHAR(

我试图向表中添加一列,并将其设置为外键,但始终出现以下错误:

错误1064 42000:您的SQL语法有错误;检查 与右边的MySQL服务器版本相对应的手册 使用近“外部KeyIdLayer引用”的语法 第1行的playersplayersid'

下面是我在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添加约束。尝试一下:

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

@Ryab Naddy为什么要添加一个约束FK_名称我想这是可选的,我只是一直在使用它,但最重要的是,你忽略了逗号