外键是否具有唯一性

Kin*_*ull 0 postgresql foreign-key unique-constraint

FOREIGN KEYs是否强加了所指对象的唯一性?即,如果我有一个引用UNIQUE受限列的外键,该FOREIGN KEY列是否是唯一的?我特别想知道 postgresql。

a_h*_*ame 5

不,外键不是隐式唯一的。并且他们不可能否则不可能实现一对多关系,例如:

create table customer 
(
   id integer primary key
);
create table orders 
(
   id integer primary key, 
   customer_id integer not null references customer
);

insert into customer values (1);
insert into orders values (1,1), (2,1), (3,1);
Run Code Online (Sandbox Code Playgroud)

但是,如果您愿意,您可以使它们独一无二。这通常在对一对一关系建模时使用。