PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Brak unikalnego ograniczenia pasującego do podanych kluczy dla wskazanej tabeli

Błąd informuje o problemie:nie masz unikalnego ograniczenia dla date_dimension które pasuje do Twojego ograniczenia klucza obcego.

Prowadzi to jednak do większego problemu projektowego:Twoja relacja klucza obcego nie ma żadnego sensu.

Możesz ewentualnie rozwiązać swój „problem” za pomocą:

CREATE UNIQUE INDEX date_dimension(id,id);

Ale to głupie, ponieważ id jest zawsze taka sama. Może być również wyrażony jako:

FOREIGN KEY (evaluation_date) REFERENCES date_dimension(id);

Następnie pozbycie się effective_date kolumna, która zawsze byłaby identyczna z evaluation_date w twoim przykładzie.

Albo... prawdopodobnie naprawdę chcesz dwóch relacji FK:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie mogę zainstalować pg gem na Mountain Lion

  2. Znajdź nazwę hosta i port za pomocą poleceń PSQL

  3. Jak utworzyć użytkownika tylko do odczytu w PostgreSQL?

  4. Django - wyszukiwanie pełnotekstowe z PostgreSQL i Elasticsearch

  5. Jak działa justify_hours() w PostgreSQL