2014-09-05 80 views
0

我有下面的SQL代碼:這個SQL爲什麼會給出錯誤?

CREATE TABLE "MY_SCHEMA"."FLIGHT" 
    ( "ID" NUMBER NOT NULL, 
    "SERVICE_SEQ_FK" NUMBER FOREIGN KEY REFERENCES SERVICE(SERVICE_SEQ) 
    ); 

它提供了以下錯誤:

SQL Error: ORA-00907: missing right parenthesis

什麼右括號?

回答

0
  1. 首先擺脫掉那些雙引號,他們以後只會麻煩你。
  2. 使用「ID」列的明確名稱而不是「ID」。

    CREATE TABLE MY_SCHEMA.FLIGHT 
    (
        ID_COL NUMBER NOT NULL, 
        CONSTRAINT SERVICE_SEQ_FK FOREIGN KEY (SERVICE_SEQ) SERVICE(SERVICE_SEQ) 
    ); 
    

更新:我覺得這是更好地提供在線和OUT-OF-線外鍵定義的例子。

內聯外鍵(列定義的一部分):

CREATE TABLE t2 (
     c1 NUMBER PRIMARY KEY, 
     c2 NUMBER REFERENCES t1(c1)); 

亂線外鍵(後列定義):

CREATE TABLE t3 (
     c1 NUMBER, 
     c2 NUMBER, 
     CONSTRAINT t1_fk FOREIGN KEY (c1) REFERENCES t1); 
相關問題