引用Oracle中的2个外键



我有三个模式,Course、Takes和Instructions。

在课程下,我有一个course_id作为主键,我想在take和instructions中引用属性course_id。我该怎么做?

目前,这是我的课程模式,我只参考了1个其他表格

CREATE TABLE Course (
course_id int PRIMARY KEY REFERENCES Takes (course_id),
)

你确定你没有把它倒过来吗?

CCD_ 1参考CCD_。

Instructs参考Course

这将是一个更正常的安排。

如果确实是您的模型,那么您可以在创建表之后执行ADD CONSTRAINT

据我所知,您有一个带有主键course_idCourse表。然后,存在表TakesInstructs,并且它们中的每一个都必须引用Takes0表(具有course_id作为外键(。在您的查询中,Course引用Takes,但必须反过来。如果这些表都不存在,您需要按如下方式创建它们:

CREATE TABLE Course (course_id INT PRIMARY KEY);
CREATE TABLE Takes (take_id INT PRIMARY KEY, course_id INT, 
FOREIGN KEY (course_id) REFERENCES Course(course_id));
CREATE TABLE Instructs (instruct_id INT PRIMARY KEY, course_id INT,
FOREIGN KEY (course_id) REFERENCES Course(course_id));

如果表TakesInstructs已经存在,则应使用ALTER TABLE:对其进行修改

ALTER TABLE Takes
ADD CONSTRAINT fk_course
FOREIGN KEY (course_id)
REFERENCES Course(course_id);

Instructs表格也是如此。

最新更新