[英]No matching unique or primary key for this column-list: SQL
我正在使用SQL,但遇到錯誤ORA-02270。
SQL> drop table employee;
Table dropped.
SQL> Create Table Employee(
age varchar(2),
gender char(1),
employee_no char(6),
references worksite(employee_no),
Primary Key(age, gender)
);
Table created.
SQL> Create Table Employee_type(
age varchar(2)
references Employee(age),
gender char(1)
references Employee(gender),
employee_type Varchar(12),
Primary Key (age, gender, employee_type)
);
ERROR at line 3:
ORA-02270: no matching unique or primary key for this column-list.
我已經閱讀了其他帖子,但仍然不明白此錯誤? 我認為這可能是因為我有一個組合鍵,但我引用了該組合鍵的所有列。
確切地說它的意思...以某種晦澀的方式:-)
在此頁面中, MySQL文檔說:
建議您使用僅引用既是UNIQUE(或PRIMARY)又不是NOT NULL的鍵的外鍵。
換句話說,當您寫age varchar(2) references Employee(age)
,必須將Employee(age)定義為UNIQUE或PRIMARY KEY。
對於Employee(性別)將是相同的。
我認為您打算使用“復合”外鍵約束,該約束具有以下語法。
CREATE TABLE Employee_type(
age varchar(2),
gender char(1),
employee_type Varchar(12),
PRIMARY KEY (age, gender, employee_type),
CONSTRAINT fk_employee FOREIGN KEY(age,gender) REFERENCES Employee(age,gender)
);
這樣一來,您可以從表中獲取多個字段,並將它們(與其他表中的匹配字段鏈接在一起)。
您應該使用CONSTRAINT設置復合外鍵。 我希望這個對你有用。
CREATE TABLE Employee_type(
age varchar(2),
gender char(1),
employee_type Varchar(12),
PRIMARY KEY (age, gender, employee_type),
CONSTRAINT fk_employee_age_gender FOREIGN KEY(age,gender)
REFERENCES Employee(age,gender)
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.