我有2个表格,您将在下面的posgresql代码中看到。第一个表格的student有两列,一列为student_name,另一列为student_id,这是主键。在我称为测试的第二张表中,该表有4列,一列用于subject_id,一列用于subject_name,然后一列用于在该学科中具有最高分数的学生,该分数最高。我正在尝试使highestStudent_id引用我的students表中的student_id。这是我下面的代码,不确定语法是否正确:
CREATE TABLE students ( student_id SERIAL PRIMARY KEY,
player_name TEXT);
CREATE TABLE tests ( subject_id SERIAL,
subject_name,
highestStudent_id SERIAL REFERENCES students);
语法highestStudent_id SERIAL REFERENCES students
正确吗?因为我看过另一个像highestStudent_id REFERENCES students(student_id))
请问在postgresql中创建外键的正确方法是什么?
如果FK引用主键,则不需要任何列。如果FK引用备用键,则需要列。
—
jarlh 2015年
您的外键引用表“ players”。您似乎没有名为“ players”的表。
—
Mike Sherrill'Cat Recall'15
@Mike Sherrill'Cat记得很抱歉,我的错是我的意思是SupremeStudent_id整数参考学生
—
Hamza
serial
它应该定义为integer
。serial
不是“真实”数据类型,而是填充序列中默认值的