sql >> Databáze >  >> RDS >> PostgreSQL

Žádné jedinečné omezení odpovídající daným klíčům pro referenční tabulku

Chyba vás informuje o problému:Nemáte jedinečné omezení date_dimension který odpovídá vašemu omezení cizího klíče.

To však vede k většímu konstrukčnímu problému:Váš vztah s cizím klíčem nedává žádný smysl.

Svůj "problém" můžete případně vyřešit pomocí:

CREATE UNIQUE INDEX date_dimension(id,id);

Ale to je hloupé, protože id je vždy stejný. Může být také vyjádřen jako:

FOREIGN KEY (evaluation_date) REFERENCES date_dimension(id);

Poté se zbavte effective_date sloupec, který by byl vždy stejný jako evaluation_date ve vašem příkladu.

Nebo... pravděpodobně opravdu chcete dva vztahy FK:

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


  1. Je správné skenovat tabulku v MySQL pomocí SELECT * .. LiMIT start, počítat bez klauzule ORDER BY?

  2. Jak zkontrolovat nevyřízené operace v transakci PostgreSQL

  3. Jak mohu vybrat řádky v obráceném pořadí v MySQL?

  4. Proč Postgres nepoužívá index?