2017-10-19 39 views
0

這裏是我的主表:沒有唯一約束匹配的引用表中給出鍵「僱員」 1

create table employee 
(
    eno SERIAL primary key, 
    ename varchar(100) not null, 
    title varchar(100) not null 
); 

我想引用的title只是因爲我已經引用的另一個表eno

create table pay 
(
    title varchar(100), 
    sal money not null, 

    foreign key(title) references employee(title) 
); 

我得到一個錯誤,沒有唯一約束匹配的引用表中給出鍵「僱員」 1

請幫助我。我很難解決這個錯誤。我仍然是SQL的初學者。非常感謝

+1

A **外鍵**從一個表('pay')可*僅限*引用**主鍵**另一個表(在這裏: 'employee'的列'eno') - 你不能只引用另一個表中的任意列 –

+0

你可以引用具有唯一鍵的任何列(或一組列)。那些不一定是主要關鍵。如果'title'列中的值是唯一的,那麼您可以聲明該列是唯一的,然後引用它 - 儘管通常情況下,如果您已經有單列​​主鍵,那麼沒有理由使用不同的單列唯一鍵作爲外鍵關係的目標。 –

回答

0

對引用給定表的表的數量沒有限制。
外鍵只能引用主鍵。

使用的外鍵eno

create table pay 
(
    eno varchar(100), 
    sal money not null, 

    foreign key(eno) references employee(eno) 
); 
相關問題