PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Nenhuma restrição exclusiva correspondendo às chaves fornecidas para a tabela referenciada


O erro informa o problema:você não tem uma restrição exclusiva em date_dimension que corresponda à sua restrição de chave estrangeira.

No entanto, isso leva ao maior problema de design:seu relacionamento de chave estrangeira não faz sentido.

Você poderia resolver seu "problema" com:
CREATE UNIQUE INDEX date_dimension(id,id);

Mas isso é idiota, porque id é sempre o mesmo. Também poderia ser expresso como:
FOREIGN KEY (evaluation_date) REFERENCES date_dimension(id);

Em seguida, livrar-se do effective_date coluna, que sempre seria idêntica a evaluation_date no seu exemplo.

Ou... você provavelmente realmente quero dois relacionamentos FK:
FOREIGN KEY (evaluation_date) REFERENCES date_dimension(id);
FOREIGN KEY (effective_date) REFERENCES date_dimension(id);