2017-10-04 19 views
0

私は私のテーブルへの1以上の外部キーを追加し、トラブルを抱えている、私はエラーを取得しています:複数の外部キーを持つ方法

"Error report - 
ORA-02270: no matching unique or primary key for this column-list 
02270. 00000 - "no matching unique or primary key for this column-list" 
*Cause: A REFERENCES clause in a CREATE/ALTER TABLE statement 
      gives a column-list for which there is no matching unique or primary 
      key constraint in the referenced table. 
*Action: Find the correct column names using the ALL_CONS_COLUMNS 
      catalog view" 

私は、第三の外部キーなしでテーブルを作ってみました、それは私がその何かが何を考えてそうに働きました最後のキーではなく、本当に確実ではありません。 (私はそれが読みやすくするためにSQLの間にスペースを入れる。)

CREATE TABLE ORDER(
ORDERID CHAR(4) NOT NULL, 
HOUSETYPE CHAR(2), 
CHAIR CHAR(2), 
PERSON CHAR(2), 
PAYDAY DATE, 
MENUPRICE NUMBER(4,2), 
CONSTRAINT CONFERENCESESSION_PK PRIMARY KEY(ORDERID), 
CONSTRAINT CONFERENCESESSION_FK1 FOREIGN KEY(HOUSETYPE) REFERENCES 
    HOUSE(HOUSETYPE), 
CONSTRAINT CONFERENCESESSION_FK2 FOREIGN KEY(PAYDAY) REFERENCES PERSON(PAYDAY), 
CONSTRAINT CONFERENCESESSION_FK3 FOREIGN KEY(MENUPRICE) REFERENCES 
    MENU(MENUPRICE) 
); 
+0

[MarkdownまたはHTMLを使用して投稿をフォーマットするにはどうすればいいですか?](https://stackoverflow.com/help/formatting)今すぐあなたの投稿は読めない混乱であり、現在の形で返答される可能性は低いです。 – waka

+0

各FKは、参照テーブルのPKまたはUNIQUE制約を参照していますか? – jarlh

+0

エラーメッセージはかなり明確です。 – APC

答えて

1

外部キーが別のテーブルの主キーを参照する必要があり、私の推測では、あなたのいくつかの外部キーが主キーを参照しないということですもう一つのテーブル。

A FOREIGN KEY is a key used to link two tables together.

A FOREIGN KEY is a field (or collection of fields) in one table that refers to the PRIMARY KEY in another table.

The table containing the foreign key is called the child table, and the table containing the candidate key is called the referenced or parent table.

https://www.w3schools.com/sql/sql_foreignkey.asp

0

外部キーを使用すると、主キーの右の名前でそれをやっていることを確認しますので、別のテーブルの主キーを参照する必要があります。たとえば:

CONSTRAINT CONFERENCESESSION_FK2 FOREIGN KEY(PAYDAY) REFERENCES PERSON(PAYDAY) 

は表PERSONに名前PAYDAYPRIMARY KEYを持っていることを確認します。

関連する問題