CREATE TABLE HOSPITAL (
HOSP_CODE INT(3) NOT NULL,
HOSP_NAME VARCHAR(15),
HOSP_ADDRESS VARCHAR(15),
HOSP_PHONE VARCHAR(8),
HOSP_SUMBED INT(5),
PRIMARY KEY (HOSP_CODE)
);
CREATE TABLE WARD (
HOSP_CODE INT(3) NOT NULL,
WARD_CODE INT(3) NOT NULL,
WARD_NAME VARCHAR(20),
WARD_SUMBED INT(3),
PRIMARY KEY (HOSP_CODE, WARD_CODE),
FOREIGN KEY (HOSP_CODE) REFERENCES HOSPITAL(HOSP_CODE),
FOREIGN KEY (WARD_CODE) REFERENCES WARD(WARD_CODE)
);
我正在尝试在表 WARD 中应用包含 2 列(HOSP_CODE 和 WARD_CODE)的主键约束和由上述两个 PK 组成的外键约束。
编写此代码给了我标题中所述的错误。我已经搜索了很多有关此错误的信息,但找不到任何东西。我知道如果存在复合 PK,那么引用相同键的 FK 需要是复合的。我不明白(可能是我遇到错误的原因)是如何分配引用 WARD_CODE 的 FK。
提前感谢您的帮助,如果我的问题不清楚,请原谅。
PS 我是 SQL 新手。
PS2。我需要这种方式的原因是因为老师给我们的一个作业,他的描述提到表 WARD 应该有一个复合 PK(HOSP_CODE,WARD_CODE)和两个用于 HOSP_CODE 和 WARD_CODE 的 FK。