2013-09-20 8 views
4

Я пытаюсь добавить внешний ключ на моей другой таблице, но это дало мне ошибку #1072 - Key column 'role_id' doesn't exist in table# 1072 - ключевой столбец «ROLE_ID» не существует в таблице

привет Я создал таблицу с именем 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

Извините за нуб ..

+0

Хм, я думаю, что столбец с именем 'role_id' действительно не существует. Я предлагаю вам использовать какой-то конструктор базы данных GUI, вместо того, чтобы писать все это своей рукой. –

+3

Кажется, что столбец 'role_id' не существует в таблице' user'. – Rohan

ответ

4

Вы должны иметь столбец вы ссылаетесь в add foreign key (ROLE_ID) внутри пользовательской таблицы. В противном случае вы получите эту ошибку.

Вы должны были бы иметь в пользовательском столе что-то вроде:

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

Или, если у вас нет, вы должны сделать:

ALTER TABLE user ADD COLUMN role_id VARCHAR(15) 

Перед тем, как установить его в качестве передний ключ.

+0

что? Я создал его как первичный ключ. – JeraldPunx

+0

Вы сделали это в таблице ролей, а не в пользователе. Вы должны иметь внутри таблицы пользователя нечто вроде 'role_id varchar (15)'. –

+0

@JeraldPunx. Удалось ли вам выполнить то, что вы хотели? Если это так, и вы чувствуете, что этот ответ помог вам, не забудьте принять его/проголосовать. если нет, сообщите, что не работает. –

Смежные вопросы