2014-09-05 92 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); 
相关问题