首页 > 解决方案 > M:N 关系 SQL 错误 00904 创建表时标识符无效

问题描述

我已经查找了如何创建 M:N 关系表。

这是我的 SQL 代码:

CREATE TABLE "product"(
    "ProductID" INT PRIMARY KEY,
    "ProductName" VARCHAR(25) NOT NULL,
    "Price" NUMBER NOT NULL,
    "Description" VARCHAR(25),
    "Quantity" INT NOT NULL
);

CREATE TABLE "transaction"(
    "TransactionID" INT PRIMARY KEY,
    "Date" INT NOT NULL
);


CREATE TABLE "trade"(
    "ProdID" INT REFERENCES "product"("ProductID"),
    "TransID" INT REFERENCES "transaction"("TransactionID"),
    "QuantityPurchased" INT NOT NULL,
    PRIMARY KEY (TransID, ProdID)
);

当我运行它时,我得到:错误报告 - ORA-00904:“TRANSID”:无效标识符 00904。00000 -“%s:无效标识符”*原因:
*操作:

我的代码有什么问题吗?

标签: sqldatabaseoracleentity-relationshipddl

解决方案


使用双引号使标识符(在本例中为列名)区分大小写。坚持一致的引用,你应该没问题:

CREATE TABLE "trade"(
    "ProdID" INT REFERENCES "product"("ProductID"),
    "TransID" INT REFERENCES "transaction"("TransactionID"),
    "QuantityPurchased" INT NOT NULL,
    PRIMARY KEY ("TransID", "ProdID")
    -- Here -----^-------^--^------^
);

推荐阅读