2013-10-12 6 views
1

Попытка создать таблицу с внешним ключом. Я продолжаю получать ошибку ORA-00904. Что я делаю не так. Это потому, что таблица внешнего ключа еще не создана?ORA-00904: «ID»: неверный идентификатор

CREATE TABLE ingredients( 
    ingredient_id  number(2,0), 
    ingredient   VARCHAR2(55) NOT NULL, 
    quantity_required VARCHAR2(15) NOT NULL, 
    optional_ingredient VARCHAR2(30) NOT NULL, 
    CONSTRAINT pk_ingr_id PRIMARY KEY(ingredient_id), 
    CONSTRAINT fk_ingredient_list FOREIGN KEY(id) REFERENCES ingredient_list(id) 
); 

ответ

4

Взгляните на следующую строку:

CONSTRAINT fk_ingredient_list FOREIGN KEY(id) REFERENCES ingredient_list(id) 

Ваша таблица не имеет столбец с именем "ID". Я предполагаю, что вы имели в виду, чтобы написать

CONSTRAINT fk_ingredient_list FOREIGN KEY(ingredient_id) REFERENCES ingredient_list(id) 

EDIT:
Кроме того, как вы подозревали себя, если вы хотите, чтобы ссылаться на ingredient_list таблицу, вы должны создать его перед созданием ingredients таблицы, которая ссылается на это.

+0

спасибо за быстрый ответ, поэтому я должен создать таблицу первой и затем добавьте внешний ключ в таблицу позже после создания всех таблиц? – user2199351

+0

не обязательно, но вы должны помнить о порядке. Прежде чем создавать ограничение на таблицу X для ссылки на таблицу Y, вы убедитесь, что существуют как X, так и Y. – Mureinik

0

Мы никогда не знаем, но в моем случае у меня было это исключение, независимо от того, какое имя я дал своей колонке. У меня была библиотека с EF, которая указывала на соответствующую базу данных. Объекты были правильными.

Но на клиентской части (веб-приложении) строка подключения указана на другую базу данных! глупая ошибка, это было трудно определить эту глупую misgave ....

Так что, пожалуйста, посмотрите на строку подключения ПЕРВОГО :)

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