2
我有四個表,其中2個是獨立的實體,一個將這兩個鏈接在一起的交集實體和第三個引用交集實體的表。下面是我有什麼結構:將交集實體中的組合外鍵用作主鍵?
CREATE TABLE tableA (
primaryKeyA number(4) ,
PRIMARY KEY (primaryKeyA));
CREATE TABLE tableB (
primaryKeyB number(4) ,
PRIMARY KEY(primaryKeyB));
CREATE TABLE intersectionTable (
primaryKeyA number(4) ,
primaryKeyB number(4) ,
FOREIGN KEY (primaryKeyA) REFERENCES tableA ,
FOREIGN KEY (primaryKeyB) REFERENCES tableB ,
PRIMARY KEY (primaryKeyA, primaryKeyB));
CREATE TABLE tableC (
primaryKeyC number(4) ,
primaryKeyA number(4) ,
primaryKeyB number(4) ,
FOREIGN KEY (primaryKeyA) REFERENCES intersectionTable ,
FOREIGN KEY (primaryKeyB) REFERENCES intersectionTable ,
PRIMARY KEY (primaryKeyA, primaryKeyB, primaryKeyC));
的問題是,每次我創建tableC
時間我收到從Oracle以下錯誤:
ORA-02256:引用的列數必須匹配引用的列
我需要確保tableC
可以引用複合鍵intersectionTable
,我以爲我已經和我的外國KEY約束來完成。我沒有改變約束tableC
到:
FOREIGN KEY (primaryKeyA) REFERENCES tableA ,
FOREIGN KEY (primaryKeyB) REFERENCES tableB ,
但是在查詢的數據庫,我發現,它並沒有利用intersectionTable
創建的複合鍵,這是需要我的。
任何幫助都會很棒。
乾杯!