我有三个模式,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_id
的Course
表。然后,存在表Takes
和Instructs
,并且它们中的每一个都必须引用Takes
0表(具有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));
如果表Takes
和Instructs
已经存在,则应使用ALTER TABLE
:对其进行修改
ALTER TABLE Takes
ADD CONSTRAINT fk_course
FOREIGN KEY (course_id)
REFERENCES Course(course_id);
Instructs
表格也是如此。