提问者:小点点

我的外键的PostgreSQL代码给出外键约束不存在[重复]


我的代码:

create table courses(
id SERIAL PRIMARY KEY 
)
----------------------
create table teachers(
id SERIAL PRIMARY KEY 
)
----------------------

CREATE TABLE assignments(
    id SERIAL PRIMARY KEY ,
    given_date TIMESTAMP,
    deadline TIMESTAMP,
    FOREIGN KEY(course_id) REFERENCES courses(id),
    FOREIGN KEY(teacher_id) REFERENCES teachers(id),
    pass_mark INT,
    full_mark INT,
    description TEXT,
    assignment_file VARCHAR(100)

);

错误:

column "course_id" referenced in foreign key constraint does not exist
SQL state: 42703

在课程和教师表的 ID 中插入数据后,我尝试运行第三个创建表代码,但没有变化。


共1个答案

匿名用户

你不能像那样引用一个列。首先,您必须添加想要创建外键的列,然后引用它。

create table courses(
id SERIAL PRIMARY KEY 
);
----------------------
create table teachers(
id SERIAL PRIMARY KEY 
);
----------------------

CREATE TABLE assignments(
    id SERIAL PRIMARY KEY ,
    given_date TIMESTAMP,
    deadline TIMESTAMP,
    course_id INT,
    teacher_id INT,
    pass_mark INT,
    full_mark INT,
    description TEXT,
    assignment_file VARCHAR(100),
    FOREIGN KEY(course_id) REFERENCES courses(id),
    FOREIGN KEY(teacher_id) REFERENCES teachers(id)

);