【问题标题】:Create table error - invalid identifier创建表错误 - 标识符无效
【发布时间】:2013-11-28 05:31:40
【问题描述】:

我正在尝试在 Oracle 11g express 中创建表,但收到错误“ORA-00904:invalid identifier”

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
);

【问题讨论】:

    标签: oracle


    【解决方案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
    );
    

    【讨论】:

    • DERP 时刻,是的,我确实忘记了列名。但是,这会产生一个新错误“ORA-00905:缺少关键字”
    猜你喜欢
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多