6

我正在尝试在我的另一个表上添加外键,但这给了我错误 #1072 - Key column 'role_id' doesn't exist in table

我创建了一个名为role

然后我像这样创建

create table role (
  role_id varchar(15)
  primary key (role_id)
)

然后当我尝试改变我桌子上的user桌子时

alter table user
add foreign key (role_id)
references role(role_id)

我得到了这样的错误

#1072 - Key column 'role_id' doesn't exist in table

4

3 回答 3

6

您必须在user 表中包含您在add foreign key (role_id中引用的列。)否则你会得到那个错误。

你必须在你的用户表里面有这样的东西:

create table user(
  ...
  role_id varchar(15)
  ...
)

或者,如果你没有它,你必须这样做:

ALTER TABLE user ADD COLUMN role_id VARCHAR(15)

在将其设置为外键之前。

于 2013-09-20T12:22:18.070 回答
0

您还需要role_id在新表中添加,然后将其设置为外键。

alter table user
roll_id varchar(15),
add foreign key (role_id)
references role(role_id)

编辑:我不知道正确的语法,因为我是 DBMS 的新手,但我遇到了类似的错误,所以只需role_id在新表中再次声明它应该可以工作。

于 2021-03-19T06:23:26.913 回答
-1

该表user没有列role_id

于 2013-09-20T12:25:30.047 回答