sql >> Database >  >> RDS >> PostgreSQL

Geen unieke beperking die overeenkomt met gegeven sleutels voor tabel waarnaar wordt verwezen

De fout vertelt je het probleem:je hebt geen unieke beperking op date_dimension die overeenkomt met uw externe sleutelbeperking.

Dit leidt echter tot het grotere ontwerpprobleem:uw relatie met buitenlandse sleutels slaat nergens op.

U kunt uw "probleem" mogelijk oplossen met:

CREATE UNIQUE INDEX date_dimension(id,id);

Maar dat is dom, want id is altijd hetzelfde. Het kan ook worden uitgedrukt als:

FOREIGN KEY (evaluation_date) REFERENCES date_dimension(id);

Verwijder vervolgens de effective_date kolom, die altijd identiek zou zijn aan evaluation_date in jouw voorbeeld.

Of... je waarschijnlijk echt wil twee FK-relaties:

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


  1. Hoe kan ik mijn DB-wijzigingen terugdraaien na een vastlegging?

  2. hoe meerdere arrays in de database in te voegen met behulp van PHP

  3. Langzame OR-instructie in postgresql

  4. ssrs 2008 trapsgewijze parameters