2015-04-14 91 views
2

我是MySQL的新手,我正在創建一個管理有關糖尿病患者信息的數據庫。我有6桌,這裏重要的是3桌,diabetic桌,diabetic_profile桌和medication_profile桌。MySQL - 如何創建一個複合表?

最後一個表(medication_profile)應該是一個組合表,它將有兩個主鍵。這些外鍵是diabetic_iddiabetic)和profile_iddiabetic_profile)。將它轉換成MySQL代碼對我來說是很困難的部分。我嘗試了很多方法,但還沒有實現。下面是我使用的SQL命令:

CREATE TABLE Medication_Profile (
    medication_type VARCHAR(10) NOT NULL, 
    profile_id INT NOT NULL, 
    diabetic int NOT NULL, 
    times_a_day NUMERIC(1) NOT NULL, 
    dose VARCHAR(20) NOT NULL, 
    PRIMARY KEY (medication_type, profile_id, diabetic), 
    FOREIGN KEY (profile_id, diabetic) 
    REFERENCES Diabetic_Profile (profile_id, diabetic_id) 

); 

請注意,此表中的diabetic_id已經是一個外鍵存在於Diabetic_profile表。

因此,您可能提供的任何建議嗎?

在此先感謝

+0

當我刪除糖尿病外國專欄時,代碼正常運行。所以我認爲引用存在問題,但還不能確定。 –

回答

0

需要有單獨的FOREIGN KEY子句每個外鍵,因爲它們指的是不同的表。

FOREIGN KEY (diabetic_id) REFERENCES diabetic (diabetic_id), 
FOREIGN KEY (profile_id) REFERENCES diabetic_profile (profile_id) 
+0

非常感謝,我解決了這個問題。再次感謝@Barmar –

相關問題