sql >> Base de Datos >  >> RDS >> PostgreSQL

Ninguna restricción única que coincida con las claves dadas para la tabla a la que se hace referencia

El error le indica el problema:no tiene una restricción única en date_dimension que coincida con su restricción de clave externa.

Sin embargo, esto conduce al problema de diseño más grande:la relación de la clave externa no tiene ningún sentido.

Posiblemente podrías resolver tu "problema" con:

CREATE UNIQUE INDEX date_dimension(id,id);

Pero eso es tonto, porque id es siempre el mismo. También podría expresarse como:

FOREIGN KEY (evaluation_date) REFERENCES date_dimension(id);

Luego deshacerse de la effective_date columna, que siempre sería idéntica a evaluation_date en tu ejemplo.

O... probablemente realmente quiero dos relaciones FK:

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