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) を持つ主キーの制約と、上記の 2 つの PK で構成される外部キー制約を適用しようとしています。
このコードを書くと、タイトルに記載されているエラーが表示されます。このエラーについてかなり検索しましたが、何も見つかりませんでした。複合 PK がある場合、同じキーを参照する FK は複合である必要があることを理解しています。私が理解していないこと (そしておそらくエラーが発生した理由) は、WARD_CODE を参照する FK をどのように割り当てることができるかということです。
ご協力いただきありがとうございます。質問が不明な場合はご容赦ください。
PS私はSQLが初めてです。
PS2。このようにする必要があるのは、教師が私たちに与えた課題のためです。その説明には、テーブル WARD には複合 PK(HOSP_CODE,WARD_CODE) と、HOSP_CODE および WARD_CODE の 2 つの FK が必要であると記載されています。