Oracle ORA-02256:引用外键

Oracle ORA-02256:引用外键,oracle,sqlplus,Oracle,Sqlplus,我是SQL新手,在引用外键时遇到一些问题 我的事件表: create table Event ( Bookid number(5), edate date, FacID int, GuestID int, CONSTRAINT pk1edate PRIMARY KEY (edate,Bookid), CONSTRAINT fk1Bookid FOREIGN KEY (Bookid) references BOOK (Bookid), CONSTRAINT fk2FacID FOREIGN KE

我是SQL新手,在引用外键时遇到一些问题

我的事件表:

create table Event
(
Bookid  number(5),
edate date,
FacID int,
GuestID int,
CONSTRAINT pk1edate PRIMARY KEY (edate,Bookid),
CONSTRAINT fk1Bookid FOREIGN KEY (Bookid) references BOOK (Bookid),
CONSTRAINT fk2FacID FOREIGN KEY (FacID) references CUSTOMER (SponsorID),
CONSTRAINT fk3GuestID FOREIGN KEY (GuestID) references CUSTOMER (SponsorID)
);   
和我的事件登记表

create table EVENT_REGISTER
(
CID number(6),
Bookid  number(5),
edate date,
CONSTRAINT pk1Edate PRIMARY KEY (edate,Bookid),
CONSTRAINT fk2Bookid FOREIGN KEY (Bookid) references BOOK,
CONSTRAINT fk3edate FOREIGN KEY (edate) references Event (edate,Bookid)
);
当我尝试运行事件\u寄存器时,出现此错误:

ERROR at line 9:
ORA-02256: number of referencing columns must match referenced columns

在引用时,需要指定父表和子表中的所有列

create table EVENT_REGISTER
(
CID number(6),
Bookid  number(5),
edate date,
CONSTRAINT pk1Edate PRIMARY KEY (edate,Bookid),
CONSTRAINT fk2Bookid FOREIGN KEY (Bookid) references BOOK(Bookid),
CONSTRAINT fk3edate FOREIGN KEY (edate,Bookid) references Event (edate,Bookid)
);

非常感谢你!我还注意到我在主键的命名上犯了一个错误。我将它们命名为pk1edate,这也给出了一个错误。再次感谢你的帮助!