当前位置: 首页 > 知识库问答 >
问题:

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

东郭自珍
2023-03-14

我的代码:

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个答案

汪飞捷
2023-03-14

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

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)

);

 类似资料:
  • mysql 5.7 外键约束 主表:部门表 从表:员工表 添加外键:从表 dep_id 关联 主表 id >[danger] CASCADE > 级联更新 主表数据更新从表会更新外键 级联删除 主表数据删除,从表会一起删除

  • 我有以下设置, 我正在尝试将一个名为 的列添加到这是另一个名为 列的表的外键。 为了实现上述目标,我在终端上尝试了以下方法: 但是这给了我一个错误: 错误:外键约束中引用的列“sender”不存在 我该怎么解决这个问题?

  • 问题内容: 刚在Mac OS X 10.6上安装了MySQL 5.5,并且在许多表上都有一个奇怪的问题。下面是一个例子。插入行失败,但不应插入外键约束。它引用的外键确实存在。有任何想法吗? 更新 :多次删除并重新创建数据库后,我在上述插入失败后进行了操作,并得到了令人惊讶的结果。找不到父语言表!这似乎很奇怪…有什么想法吗? 更新2 :事实证明,这只是MySQL中的一个 巨大 错误。显然,最新版本的

  • 问题内容: 我有一个用户表,例如: 和一张有工作的桌子: 可以将作业分配给用户,但只能分配给超级用户。其他用户无法分配作业。 因此,我有一个表格,通过它可以查看将哪个作业分配给了哪个用户: 但是我想创建一个检查约束,该约束引用具有的用户。 那可能吗?还是有其他解决方案? 问题答案: 这将适用于INSERTS: 然后在user_has_job表上检查约束: 适用于插入物: 但是,这是可能的: 因此,

  • 问题内容: 我正在尝试通过使用外键来确保表之间的数据一致性,以便DBMS可以检查错误。但是,由于某些原因,我们似乎无法做到这一点。有什么错误,还有替代方法吗?另外,当我填写具有外键的表时,无法填写为外键保留的字段,对吗?另外,外键是否完全视为键? 问题答案: 最可能的问题是此行: classLeader的数据类型为VARCHAR(255)。这有 匹配数据类型 的引用的列… 。当然,表必须存在,列也

  • 主要内容:在创建表时设置外键约束,在修改表时添加外键约束,删除外键约束MySQL外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。 外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。比如,一个水果摊,只有苹果、桃子、李子、西瓜等 4 种水果,那么,你来到水果摊要买水果就只能选择苹果、桃子、李子和西