我在尝试创建表时收到此错误,但我不知道为什么:[2016-07-05 14:08:02] [42000][2270] ORA-02270: no matching unique or primary key for this column-list
这个问题(对我来说)似乎与类似的问题 https://stackoverflow.com/questions/36535144/no-matching-unique-or-primary-key-for-this-column-list-the-primary-key-does-e,因为在这个问题中,OP 正在引用一个具有复合 PK 的表,而我则没有。
虽然这其他问题 https://stackoverflow.com/questions/15902152/no-matching-unique-or-primary-key-for-this-sql有相同的错误代码,这是因为OP错误地引用了主键,而我没有think I did.
有 SQL 方面更有经验的人可以教我吗?
(需要注意的几件事:1)我知道表/列名称与惯例有小错误/偏差,但这是为了家庭作业,老师要求我声明表和行exactly他的方式,即使它是非传统的。 2)是的,这很愚蠢;但不,我不能改变它,否则我就会被扣分。)
CREATE TABLE Student_Course
(
Stu_ID NUMBER(5) NOT NULL,
Course_ID VARCHAR2(8) NOT NULL,
Section# NUMBER(3),
CONSTRAINT pk_stu_crse PRIMARY KEY (Stu_ID, Course_ID),
CONSTRAINT fk_course_id FOREIGN KEY (Course_ID) REFERENCES course(Course_ID),
CONSTRAINT fk_stu_id FOREIGN KEY (Stu_ID) REFERENCES student(Stu_ID),
CONSTRAINT fk_section FOREIGN KEY (Section#) REFERENCES course(Section#)
)
只有两个小的引用表,它们是:
CREATE TABLE student
(
Stu_ID NUMBER(5) PRIMARY KEY ,
Lname VARCHAR2(20),
Fname VARCHAR2(20),
Mi CHAR(1),
Sex CHAR(1),
Major VARCHAR2(15),
Home_State CHAR(2)
);
CREATE TABLE course
(
Course_ID VARCHAR2(8) PRIMARY KEY ,
Section# NUMBER(3),
C_Name VARCHAR2(30),
C_Description VARCHAR2(30)
);