PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Nessun vincolo univoco corrispondente alle chiavi fornite per la tabella di riferimento

L'errore indica il problema:non hai un vincolo univoco su date_dimension che corrisponde al tuo vincolo di chiave esterna.

Tuttavia, questo porta al problema di progettazione più grande:la tua relazione con la chiave esterna non ha alcun senso.

Potresti eventualmente risolvere il tuo "problema" con:

CREATE UNIQUE INDEX date_dimension(id,id);

Ma è stupido, perché id è sempre lo stesso. Potrebbe anche essere espresso come:

FOREIGN KEY (evaluation_date) REFERENCES date_dimension(id);

Quindi sbarazzati della effective_date colonna, che sarebbe sempre identica a evaluation_date nel tuo esempio.

Oppure... probabilmente davvero voglio due relazioni FK:

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