2013-08-25 74 views
0

我想創建一個使用oracle的外鍵表。我的語法如下Oracle創建表

CREATE TABLE product (
    product_id  INT(7) NOT NULL, 
    supplier_id  INT(7) NOT NULL, 
    product_name  VARCHAR2(30), 
    product_price DOUBLE(4), 
    product_category VARCHAR2(30), 
    product_brand VARCHAR2(20), 
    product_expire DATE, 
    PRIMARY KEY (product_id), 
    FOREIGN KEY (supplier_id) 
) 

我得到了一個錯誤,說

Error at Command Line:2 Column:14 Error report: SQL Error: ORA-00907: missing right parenthesis 00907. 00000 - "missing right parenthesis" *Cause:
*Action:

請幫幫忙!

+3

你的外鍵似乎很缺乏。 – Mat

回答

2

您的外鍵應該引用另一個表上的另一列。

  1. Here is the documentation you need to fix your issue(如何寫有正確的語法爲外鍵查詢)

  2. 此外,更改數據類型列PRODUCT_PRICE從DOULBE(4)NUMBER(12,4)

+0

他正在使用Oracle數據庫而不是Oracle MySQL。 –

+0

已經試過!仍然有另一個錯誤 – user2714726

+0

@ user2714726還有什麼其他錯誤? –

0

您不應該使用int類型的限制... oracle將採用int類型的默認長度。 代替int,您可以使用Number類型使其運行。而DOUBLE PRECISION是oracle中的一種數據類型,但Double不存在。另外,外鍵的語法也是錯誤的。 所以此查詢將工作肯定:

CREATE TABLE product(
    product_id  number(7) NOT NULL, 
    supplier_id  number(7) NOT NULL, 
    product_name  VARCHAR2(30), 
    product_price DOUBLE PRECISION, 
    product_category VARCHAR2(30), 
    product_brand VARCHAR2(20), 
    product_expire DATE, 
    PRIMARY KEY (product_id), 
    FOREIGN KEY (supplier_id) 
    REFERENCES parent_table (supplier_id) 
);