这是我的陈述:
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”
答案 0 :(得分:0)
外键约束是两个表之间的关系,这样第一个表(子表)中的每一行都与第二个表(父表)中的某一行相关。该关系通过一个或多个列实现,在两个表的相应行中具有相同的值。
这里的一个关键点是你必须能够识别父表中的匹配行。为此,您需要对父表上的列(或列)进行UNIQUE
约束,否则行值将不会唯一标识父表中的行。
因此,您需要UNIQUE
上的building_room(room_number)
约束。