我有以下SQL代码:
CREATE TABLE "MY_SCHEMA"."FLIGHT"
( "ID" NUMBER NOT NULL,
"SERVICE_SEQ_FK" NUMBER FOREIGN KEY REFERENCES SERVICE(SERVICE_SEQ)
);
它出现以下错误:
SQL错误:ORA-00907:缺少右括号
什么是右括号?
答案 0 :(得分:2)
定义内嵌外键时,不得使用foreign key
关键字:
CREATE TABLE MY_SCHEMA.FLIGHT
(
ID NUMBER NOT NULL,
SERVICE_SEQ_FK NUMBER REFERENCES SERVICE (SERVICE_SEQ)
);
有关详细信息,请参阅手册:http://docs.oracle.com/cd/E11882_01/server.112/e41084/clauses002.htm#CJAHIEIJ
答案 1 :(得分:0)
使用“ID”列的显式名称而不仅仅是“ID”。
CREATE TABLE MY_SCHEMA.FLIGHT
(
ID_COL NUMBER NOT NULL,
CONSTRAINT SERVICE_SEQ_FK FOREIGN KEY (SERVICE_SEQ) SERVICE(SERVICE_SEQ)
);
更新:我认为最好为IN-line和OUT-of-line外键定义提供示例。
内联外键(列定义的一部分):
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);