2017-03-20 41 views
0
CREATE TABLE PRESCRIPTION 
(
    prescription_no NUMBER (7), 
    CONSTRAINT prescription_no_pk PRIMARY KEY, 
    pr_patient_no VARCHAR2(6), 
    CONSTRAINT pr_patient_no_fk FOREIGN KEY(patient) REFERENCES (patient_no), 
    pr_drug_no NUMBER(5), 
    CONSTRAINT pr_drug_no_fk FOREIGN KEY (drug) REFERENCES (drug_no), 
    drug_start_date DATE, 
    units_per_day NUMBER(3,2), 
    drug_end_date DATE 
); 
+0

約束條件不應該由它們及其相關字段之間的逗號分隔。 –

回答

0

試試下面的查詢我改變您的查詢:

CREATE TABLE PRESCRIPTION 
( 
    prescription_no NUMBER (7) CONSTRAINT prescription_no_pk PRIMARY KEY, 
    pr_patient_no VARCHAR2(6) CONSTRAINT pr_patient_no_fk FOREIGN KEY(patient) 
    REFERENCES (patient_no), 
    pr_drug_no NUMBER(5) CONSTRAINT pr_drug_no_fk FOREIGN KEY (drug) 
    REFERENCES (drug_no), 
    drug_start_date DATE, 
    units_per_day NUMBER(3,2), 
    drug_end_date DATE 
); 
+0

它甚至編譯? 「此處不允許約束規範」 –

0

外鍵約束的語法如下: FOREIGN KEY (<this table's column name>) REFERENCES <another table>(<another table's column name>)。 在您的例子,假設patient有以下模式:

CREATE TABLE patient (
    patient_no VARCHAR2(6), 
    primary key (patient_no) 
    ) 

你引用它,如下所示:

CREATE TABLE PRESCRIPTION (
    prescription_no NUMBER (7), 
    pr_patient_no VARCHAR2(6) , 
    CONSTRAINT prescription_no_pk PRIMARY KEY (prescription_no), 
    CONSTRAINT pr_patient_no_fk FOREIGN KEY (pr_patient_no) REFERENCES patient(patient_no) 
    ) 

等。

相關問題