Le référencement d'un à deux colonnes de clé primaire avec plusieurs clés étrangères

Prendre les deux tables suivantes dans 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)
);

Pourquoi n'est-il pas énoncé de travail? Ou, plus précisément, pourquoi ne devrait-elle pas de travail? La raison pour laquelle je suis en train de créer ce type de relation est dire que, dans l'avenir, je veux supprimer B.D, mais garder la relation FK_E.

J'obtiens le message d'erreur:

ORA-02270: pas de correspondance unique ou de clé primaire de cette colonne liste

Ne vous obtenez une erreur? Je ne me souviens pas si Oracle applique cette, mais si A.A et A.B sont référencées comme FKs, ils peuvent chacun besoin d'un index, plutôt que de simplement le composite PK vous avez défini sur eux. Essayez de définir un index supplémentaire sur chacun de ces seules colonnes dans le Tableau A.
De sorte que le total des indices que vous avez sur Table A sont: PK (A,B), UNIQUE (C), INDEX (A), INDEX (B)
Hm, c'est de me crier dessus: ORA-00904: : identifiant invalide Oh, désolé, je n'avais pas remarqué votre première question, oui, j'obtiens une erreur. ORA-02270: pas de correspondance unique ou de clé primaire de cette colonne liste

OriginalL'auteur psidhu | 2013-01-27