我在向表格添加超过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 :(得分:1)
外键必须引用另一个表主键,我的猜测是你们中的一些外键不引用另一个表的主键。
FOREIGN KEY是用于将两个表链接在一起的键。
FOREIGN KEY是一个表中的字段(或字段集合) 指另一个表中的PRIMARY KEY。
包含外键的表称为子表,和 包含候选键的表称为引用或 父表。
答案 1 :(得分:0)
外键必须引用另一个表主键,因此请确保使用主键的正确名称执行此操作。例如:
CONSTRAINT CONFERENCESESSION_FK2 FOREIGN KEY(PAYDAY) REFERENCES PERSON(PAYDAY)
确保在表格PERSON
中PRIMARY KEY
名称为PAYDAY
。