mke*_*kin 1 sql foreign-keys sql-server-2008
我想创建这两个表,但我收到一个错误,说明由HOLD的外键引用的SECTION键不是主键.正如在查询中看到的那样,它们是主键.我怎么解决这个问题?
create table SECTION(
ID integer foreign key references TERM(ID),
CID integer foreign key references COURSE(CID),
SECT integer,
constraint PK_SECTION primary key (ID,CID,SECT),
);
create table HOLD(
NAME varchar(30) foreign key references INSTRUCTOR(NAME),
ID integer foreign key references SECTION(ID),
CID integer foreign key references SECTION(CID),
SECT integer foreign key references SECTION(SECT),
constraint PK_HOLD primary key (NAME,ID,CID,SECT),
);
Run Code Online (Sandbox Code Playgroud)
ID,CID,SECT不是主键,它们一起是一个主键(多个属性).你必须像这样引用它们:
CONSTRAINT "HOLD_FK01" FOREIGN KEY ("ID", "CID", "SECT")
REFERENCES "SECTION" ("ID", "CID", "SECT")
Run Code Online (Sandbox Code Playgroud)