这些都是我的表:SQL ORA-02256:引用的列数必须与所引用的列
CREATE TABLE EMPLOYEE(
Emp_id number(4),
Emp_name varchar2(30),
Emp_gender varchar2(1),
Status varchar2(30),
Years_service number(4),
Primary Key (emp_id)
);
CREATE TABLE ACTIVITY(
Act_id number(4),
Description varchar2(30),
Category_code varchar2(1),
Primary Key(Act_id)
);
CREATE TABLE ALLOCATION(
Emp_id number(4) NOT NULL,
Act_id number(4) NOT NULL,
Hourly_rate number(5,2) NOT NULL,
Primary Key (Act_id, Emp_id),
Foreign Key (Act_id) REFERENCES ACTIVITY,
Foreign Key (Emp_id) REFERENCES EMPLOYEE,
CONSTRAINT CK_ALLOCATION_RATE CHECK(Hourly_rate > 0 and Hourly_rate<300)
);
CREATE TABLE ACTION(
Week_no number(2) NOT NULL,
Hrs_worked number(4,1) NOT NULL,
Act_id number(4) NOT NULL,
emp_id number(4) NOT NULL,
Primary Key (Week_no, Act_id, emp_id),
Foreign Key (Act_id) References Allocation,
Foreign Key (emp_id) References Allocation
);
表employee
,activity
和allocation
是完全建立。但是当我尝试创建表action
并将外键引用到表allocation
时,它说:ORA-02256:引用列的数量必须与引用列匹配。
错误消息说,这一切。您必须具有与主键相同的列数,即2. – jarlh
那么我应该怎么做?编辑分配表? – Luke
你必须确定外键是什么。必须在Action中引用Act_id/Emp_id组合,并且仍然有意义! (此外,我会命名表行动,分配等,因为商店几个不同的行。) – jarlh