2015-01-12 17 views
1

遇到ORA-02270錯誤。一遍又一遍地檢查主鍵和外鍵後,我找不到問題所在。ORA-02270 - 找不到錯誤

CREATE TABLE CUSTACC(
REFNO CHAR(4), 
ACCNO NUMBER(7), 
CONSTRAINT CUSTACC_PK PRIMARY KEY (REFNO, ACCNO)); 

CREATE TABLE CUST(
CUSTNO CHAR(4), 
NAME VARCHAR2(30), 
ADDRESS VARCHAR2(50), 
AREA VARCHAR2(10), 
CONSTRAINT CUSTNO_PK PRIMARY KEY(CUSTNO), 
CONSTRAINT CUSTNO_FK FOREIGN KEY (CUSTNO) 
    REFERENCES CUSTACC(REFNO)); 

CREATE TABLE ACC(
ACCNO NUMBER(7), 
BALANCE NUMBER(8,2), 
BRANCH VARCHAR2(10), 
OPENED DATE, 
BONUS NUMBER(8,2), 
CONSTRAINT ACCNO_PK PRIMARY KEY (ACCNO), 
CONSTRAINT ACCNO_FK FOREIGN KEY (ACCNO) 
    REFERENCES CUSTACC(ACCNO)); 

我必須是盲人,但我已經檢查過以前所有人都提出過的建議。

回答

2

CUSTACC上的主鍵由兩列組成:REFNOACCNO

外鍵引用應該包括它們兩個。所以,你的表需要兩列。

我懷疑,實際上,要在第一個表像這樣的外鍵參考,東西:

CREATE TABLE CUST (
    CUSTNO CHAR(4), 
    NAME VARCHAR2(30), 
    ADDRESS VARCHAR2(50), 
    AREA VARCHAR2(10), 
    CONSTRAINT CUSTNO_PK PRIMARY KEY(CUSTNO) 
); 

CREATE TABLE ACC (
    ACCNO NUMBER(7), 
    BALANCE NUMBER(8,2), 
    BRANCH VARCHAR2(10), 
    OPENED DATE, 
    BONUS NUMBER(8,2), 
    CONSTRAINT ACCNO_PK PRIMARY KEY (ACCNO) 
); 

CREATE TABLE CUSTACC (
    REFNO CHAR(4), 
    ACCNO NUMBER(7), 
    CONSTRAINT CUSTACC_PK PRIMARY KEY (REFNO, ACCNO), 
    CONSTRAINT CUSTNO_FK FOREIGN KEY (REFNO) 
     REFERENCES CUST(CUSTNO), 
    CONSTRAINT ACCNO_FK FOREIGN KEY (ACCNO) 
     REFERENCES ACC(ACCNO) 
); 

Here是SQL小提琴。