Das verweisen auf ein zwei Spalten-Primärschlüssel mit mehreren Fremdschlüssel

Nehmen Sie die folgenden zwei Tabellen in Oracle:

Create Table A
( A int, B int, C int,
  Constraint pk_ab Primary Key(A, B),
  Unique (C)
);

Create Table B
( D int, E int, F int,
  Constraint fk_d Foreign Key (D) References A(A),
  Constraint fk_e Foreign Key (E) References A(B)
);

Warum nicht diese Anweisung funktionieren? Oder genauer gesagt, warum sollte es nicht funktionieren? Der Grund, warum ich versuche zu schaffen, diese Art von Beziehung ist zu sagen, in der Zukunft will ich löschen B.D, aber halten Sie die Beziehung FK_E.

Ich bin immer der Fehler:

ORA-02270: keine passende unique-oder primary key-Spalte-Liste

  • Bekommst du eine Fehlermeldung? Ich kann mich nicht erinnern, ob Oracle erzwingt diese, aber wenn A.A und A.B verwiesen wird, wie FKs, können Sie jeweils benötigen einen einzelnen index, anstatt nur die composite-PK haben Sie definiert. Versuchen Sie, definieren Sie einen zusätzlichen index für jede dieser Spalten alleine in Tabelle A.
  • So ist die Summe der Indizes, die Sie auf Table A sind: PK (A,B), UNIQUE (C), INDEX (A), INDEX (B)
  • Hm, es ist Schreien mich an: ORA-00904: : Ungültiger Bezeichner Oh, sorry, habe ich nicht bemerkt deiner ersten Frage, ja, ich bekomme eine Fehlermeldung. ORA-02270: keine passende unique-oder primary key-Spalte-Liste
InformationsquelleAutor psidhu | 2013-01-27
Schreibe einen Kommentar