Oracle - 此列列表没有匹配的唯一键或主键
Oracle - No matching unique or primary key for this column-list
好的,抱歉,如果我的代码不是最佳格式。尝试创建第二个 table 时出现错误。我收到此错误:ORA-02270:此列列表没有匹配的唯一键或主键。我已经阅读了其他帖子,但我对我的外键出了什么问题感到困惑。 E_T 中的外键是 D_ID 和 SP_ID。 D_id 引用 table d_t 而 SP_ID 引用 table e_t 因为它是与 E_ID 的一元关系。我相信这是员工 ID 和主管 ID。 FK 和 PK 数据类型匹配。
CREATE TABLE D_T
(
D_ID INTEGER NOT NULL,
D_Name VARCHAR(45),
CONSTRAINT D_T_PK PRIMARY KEY (D_ID)
);
CREATE TABLE E_T
(
E_ID INTEGER NOT NULL,
E_Name VARCHAR(45),
D_ID INTEGER,
Salary INTEGER,
SP_ID INTEGER,
CONSTRAINT E_T_PK PRIMARY KEY (E_ID),
CONSTRAINT E_T_FK1 FOREIGN KEY (D_ID) REFERENCES D_T(D_ID),
CONSTRAINT E_T_FK2 FOREIGN KEY (SP_ID) REFERENCES E_T(SP_ID)
);
我想指出,在 Oracle 服务器上——我脚本的第 13 行和第 14 行 "KEY" 一词不是蓝色的。我不确定这是否重要。
您为自引用引用了错误的列。所以第二个 table 应该看起来更像:
CREATE TABLE E_T (
E_ID INTEGER NOT NULL PRIMARY KEY,
E_Name VARCHAR(45),
D_ID INTEGER,
Salary INTEGER,
SP_ID INTEGER,
CONSTRAINT E_T_FK1 FOREIGN KEY (D_ID) REFERENCES D_T(D_ID),
CONSTRAINT E_T_FK2 FOREIGN KEY (SP_ID) REFERENCES E_T(E_ID)
-------------------------------------------------------^
)
好的,抱歉,如果我的代码不是最佳格式。尝试创建第二个 table 时出现错误。我收到此错误:ORA-02270:此列列表没有匹配的唯一键或主键。我已经阅读了其他帖子,但我对我的外键出了什么问题感到困惑。 E_T 中的外键是 D_ID 和 SP_ID。 D_id 引用 table d_t 而 SP_ID 引用 table e_t 因为它是与 E_ID 的一元关系。我相信这是员工 ID 和主管 ID。 FK 和 PK 数据类型匹配。
CREATE TABLE D_T
(
D_ID INTEGER NOT NULL,
D_Name VARCHAR(45),
CONSTRAINT D_T_PK PRIMARY KEY (D_ID)
);
CREATE TABLE E_T
(
E_ID INTEGER NOT NULL,
E_Name VARCHAR(45),
D_ID INTEGER,
Salary INTEGER,
SP_ID INTEGER,
CONSTRAINT E_T_PK PRIMARY KEY (E_ID),
CONSTRAINT E_T_FK1 FOREIGN KEY (D_ID) REFERENCES D_T(D_ID),
CONSTRAINT E_T_FK2 FOREIGN KEY (SP_ID) REFERENCES E_T(SP_ID)
);
我想指出,在 Oracle 服务器上——我脚本的第 13 行和第 14 行 "KEY" 一词不是蓝色的。我不确定这是否重要。
您为自引用引用了错误的列。所以第二个 table 应该看起来更像:
CREATE TABLE E_T (
E_ID INTEGER NOT NULL PRIMARY KEY,
E_Name VARCHAR(45),
D_ID INTEGER,
Salary INTEGER,
SP_ID INTEGER,
CONSTRAINT E_T_FK1 FOREIGN KEY (D_ID) REFERENCES D_T(D_ID),
CONSTRAINT E_T_FK2 FOREIGN KEY (SP_ID) REFERENCES E_T(E_ID)
-------------------------------------------------------^
)