#1072 - 表中不存在键列'role_id'

时间:2013-09-20 12:19:35

标签: mysql sql

我正在尝试在我的另一张桌子上添加外键,但这给了我错误 #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

抱歉是noob ..

3 个答案:

答案 0 :(得分:5)

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

您必须在用户表中包含以下内容:

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

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

ALTER TABLE user ADD COLUMN role_id VARCHAR(15)

在将其设置为外键之前。

答案 1 :(得分:0)

user没有列role_id

答案 2 :(得分:0)

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

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

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