2013-11-28 2 views
0

Я пытаюсь создать таблицу в Oracle 11g курьерского, но я получаю ошибку «ORA-00904: недопустимый идентификатор»Создание ошибки таблицы - недопустимый идентификатор

CREATE TABLE Ingredients(
IngredientID INTEGER  PRIMARY KEY  NOT NULL, 
IngredientName VARCHAR(255), 
IngredientClassID SMALLINT NOT NULL, 
MeasureAmountID  SMALLINT NOT NULL, 
CHECK (IngredientID>0), 
CHECK (IngredientClassID>0), 
FOREIGN KEY (IngredientClassID) REFERENCES Ingredient_Classes, 
     ON UPDATE NO ACTION, 
     ON DELETE CASCADE, 
FOREIGN KEY (MeasureAmountID) REFERENCES Measurements, 
     ON UPDATE NO ACTION, 
     ON DELETE CASCADE 
); 

ответ

1

Соскучился TableName (ColumnName) в внешний ключ, а также добавлены дополнительные запятые. проверить правильный синтаксис http://docs.oracle.com/cd/E17952_01/refman-5.5-en/create-table-foreign-keys.html

Я не тестировал приведенный ниже сценарий.

CREATE TABLE Ingredients(
IngredientID INTEGER  PRIMARY KEY  NOT NULL, 
IngredientName VARCHAR(255), 
IngredientClassID SMALLINT NOT NULL, 
MeasureAmountID  SMALLINT NOT NULL, 
CHECK (IngredientID>0), 
CHECK (IngredientClassID>0), 
FOREIGN KEY (IngredientClassID) REFERENCES Ingredient_Classes(ColumnName) 
     ON UPDATE NO ACTION 
     ON DELETE CASCADE, 
FOREIGN KEY (MeasureAmountID) REFERENCES Measurements(ColumnName) 
     ON UPDATE NO ACTION 
     ON DELETE CASCADE 
); 
+0

DERP момент, да, я забыл названия колонок. Однако это приводит к появлению новой ошибки «ORA-00905: отсутствует ключевое слово», – user2923395

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