外键语句错误

时间:2016-11-28 00:13:51

标签: sql postgresql

这是我的陈述:

CREATE TABLE course(
c_id VARCHAR(3),
c_name varchar(30),
room_number integer NOT NULL, 
CONSTRAINT fk_course FOREIGN KEY (room_number) REFERENCES
    building_room(room_number),
CONSTRAINT pk_course PRIMARY KEY (c_id), 
CONSTRAINT check_name CHECK (c_name <> NULL));

我得到的错误:

  

错误:没有与给定键匹配的唯一约束   引用表“building_room”

1 个答案:

答案 0 :(得分:0)

外键约束是两个表之间的关系,这样第一个表(子表)中的每一行都与第二个表(父表)中的某一行相关。该关系通过一个或多个列实现,在两个表的相应行中具有相同的值。

这里的一个关键点是你必须能够识别父表中的匹配行。为此,您需要对父表上的列(或列)进行UNIQUE约束,否则行值将不会唯一标识父表中的行。

因此,您需要UNIQUE上的building_room(room_number)约束。