PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Keine eindeutige Einschränkung, die den angegebenen Schlüsseln für die referenzierte Tabelle entspricht

Der Fehler weist Sie auf das Problem hin:Sie haben keine eindeutige Einschränkung für date_dimension die Ihrer Fremdschlüsseleinschränkung entspricht.

Dies führt jedoch zu dem größeren Designproblem:Ihre Fremdschlüsselbeziehung ergibt keinen Sinn.

Du könntest dein "Problem" möglicherweise lösen mit:

CREATE UNIQUE INDEX date_dimension(id,id);

Aber das ist dumm, weil id ist immer gleich. Es könnte auch ausgedrückt werden als:

FOREIGN KEY (evaluation_date) REFERENCES date_dimension(id);

Dann das effective_date loswerden Spalte, die immer identisch mit evaluation_date wäre in deinem Beispiel.

Oder ... Sie wahrscheinlich wirklich möchte zwei FK-Beziehungen:

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