PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Aucune contrainte unique correspondant aux clés données pour la table référencée

L'erreur vous indique le problème :vous n'avez pas de contrainte unique sur date_dimension qui correspond à votre contrainte de clé étrangère.

Cependant, cela conduit à un problème de conception plus important :votre relation de clé étrangère n'a aucun sens.

Vous pourriez peut-être résoudre votre "problème" avec :

CREATE UNIQUE INDEX date_dimension(id,id);

Mais c'est idiot, car id est toujours le même. Il pourrait également être exprimé comme :

FOREIGN KEY (evaluation_date) REFERENCES date_dimension(id);

Puis se débarrasser de la effective_date colonne, qui serait toujours identique à evaluation_date dans votre exemple.

Ou... vous êtes probablement vraiment voulez deux relations FK :

FOREIGN KEY (evaluation_date) REFERENCES date_dimension(id);
FOREIGN KEY (effective_date) REFERENCES date_dimension(id);