2015-05-22 79 views
-1

如何在表 中的多個外鍵意味着包含患者,醫生和工作人員的數據庫時如何插入數據 患者:必須與患者預約 醫生:每個約會都必須要有醫生如何在表中存在多個外鍵時插入數據

我的問題如何在患者,醫生等同時插入約會內的數據和其他相關表格?

請舉個例子嗎?

CREATE TABLE IF NOT EXISTS `doctor` (
    `doctor_id` int(11) NOT NULL AUTO_INCREMENT, 
    `doc_name` varchar(100) NOT NULL, 
    `contactNum` varchar(100) NOT NULL, 
    `email` varchar(100) NOT NULL, 
    `qulification` varchar(100) NOT NULL, 
    `joiningDate` varchar(50) NOT NULL, 
    `u_id` int(11) NOT NULL, 
    PRIMARY KEY (`doctor_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; 

醫生 doctor_id:1 doctor_name:阿里 Qulification:MBBS

CREATE TABLE IF NOT EXISTS `patient` (
    `patient_id` int(11) NOT NULL AUTO_INCREMENT, 
    `Name` varchar(100) NOT NULL, 
    `sex` varchar(11) NOT NULL, 
    `diagnosis` text NOT NULL, 
    `DOB` varchar(100) NOT NULL, 
    `address` varchar(200) NOT NULL, 
    `Contact_No` varchar(111) NOT NULL, 
    PRIMARY KEY (`patient_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; 

patient 

patient_id:1 名稱:艾哈邁德祖拜爾 性別:男 診斷:測試 DOB:20/6/2000 address:islamabad

CREATE TABLE appointment 
(
    appointment_id int NOT NULL, 
    doctor_id int NOT NULL, 
    patient_id int NOT NULL, 
    Date int NOT NULL, 
    time int, 

    PRIMARY KEY (appointment_id), 
    CONSTRAINT fk_ap_pa_id FOREIGN KEY (patient_id) REFERENCES patient(patient_id), 
    CONSTRAINT fk_ap_do_id FOREIGN KEY (doctor_id) REFERENCES doctor (doctor_id) 
); 
+1

你不能。您首先將數據插入患者和醫生表格,然後您可以創建預約。 –

回答

0

正如第一條評論所述,您需要先將記錄插入patientdoctor表中,然後才能插入您的約會記錄。如果這些需要在單個操作中發生(例如,全部成功或全部失敗),則將插入語句包裝在事務中。

我沒有獲得完全需要獸醫的代碼MySQL實例,所以我不能發佈,但按照此過程:

  1. 插入您doctor記錄
  2. 保存的主鍵使用LAST_INSERT_ID()到一個局部變量產生
  3. 插入您patient記錄
  4. 保存此主鍵到一個新的變量使用相同的過程作爲第2步
  5. 現在您可以使用在聲明這兩個變量,以確保您滿足外鍵

再次...如果這是一個原子操作,然後包裹在一個事務中這些語句插入你的約會記錄的是包括檢查您的情況所需的任何驗證或錯誤。

更多信息有關LAST_INSERT_ID()這裏 - https://stackoverflow.com/a/17112962/571237

+0

問題修改... – Asad

+0

局部變量?請如何解釋我 – Asad

+0

查看文檔 - https://dev.mysql.com/doc/refman/5.7/en/user-variables.html。我想你應該可以寫一些像'SET @doctorPK = LAST_INSERT_ID()'的東西,然後在最終的插入語句中使用該變量。 –

0

爲了實現這一目標,你應該使用事務,有關更多細節你可以閱讀

謝謝