create table date_dimension (
id serial primary key,
date_id date,
..... others
);
create table temp (
id serial primary key,
from_date integer,
to_date integer,
value integer,
foreign key (from_date, to_date) references date_dimension(id, id)
);
如何在from_date
中将to_date
和id
引用至date_dimension
字段?
当前的代码没有这么说
ERROR: there is no unique constraint matching given keys for referenced table "date_dimension"
谢谢
答案 0 :(得分:5)
添加到表中的每个FOREIGN KEY
约束将始终将引用表中的一个行与referant中的一个行*相关联。如果您希望引用中的每一行引用referant中的两个不同的行,则需要两个单独的外键约束。
你想要:
foreign key (from_date) references date_dimension(id)
foreign key (to_date) references date_dimension(id)
您几乎总是希望外键中的行与referant中的主键完全相同。
*实际上,如果外键小于反叛者的候选键,则反叛者中可能有多行。但这很少有用,而且几乎肯定与您描述的问题无关