這些都是我的表: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