所以我正在练习一些sql编码进行测试,我无法获得引用主键的外键.
这是不起作用的表:
CREATE TABLE ASSIGNMENT(
ASSIGN_ID NUMBER(2) NOT NULL,
START_DATE DATE,
END_DATE DATE,
BUDGET NUMBER (10,2),
MANAGER_ID NUMBER(2),
PRIMARY KEY (ASSIGN_ID,MANAGER_ID),
FOREIGN KEY (MANAGER_ID) REFERENCES EMPLOYEE(EMP_ID)
);
Run Code Online (Sandbox Code Playgroud)
这是它引用的表:
CREATE TABLE EMPLOYEE(
EMP_ID NUMBER(2) NOT NULL,
NAME VARCHAR(40),
OFFICE VARCHAR(20),
EXPERT_ID NUMBER(2),
PRIMARY KEY (EMP_ID,EXPERT_ID),
FOREIGN KEY (EXPERT_ID) REFERENCES EXPERTISE(EXPERT_ID)
);
Run Code Online (Sandbox Code Playgroud)
每当我尝试运行脚本时,它总会返回:
错误报告 -
SQL错误:ORA-02270:此列列表
没有匹配的唯一键或主键02270. 00000 - " 此列列表没有匹配的唯一键或主键"
*原因:CREATE/ALTER TABLE中的REFERENCES子句statement
给出了一个列表,在引用的表中没有匹配的唯一或主键约束.
*操作:使用ALL_CONS_COLUMNS目录视图查找正确的列名称
我环顾四周但似乎无法找到问题.任何帮助,将不胜感激.
这是完整的代码(还没有测试过最后一个表):
CREATE TABLE EXPERTISE(
EXPERT_ID NUMBER(2) NOT NULL,
DESCRIPTION VARCHAR(50),
HOURLY_RATE NUMBER(3,2),
CHARGE_RATE NUMBER(3,2),
PRIMARY KEY(EXPERT_ID) …Run Code Online (Sandbox Code Playgroud)