Oracle
 sql >> Base de données >  >> RDS >> Oracle

Question clé primaire composite / clé étrangère Oracle

L'erreur est due au fait que FOREIGN KEY est une colonne, mais vous essayez de fournir deux colonnes en tant que parent. Il n'est pas nécessaire de se lier à la clé composite, car les restrictedgroups n'a pas de personid colonne...

Vous avez également la relation à l'envers - utilisez :

CREATE TABLE restrictedgroups ( 
  groupid number, 
  name varchar2(50), 
  dateadded date, 
  since date, 
  notes varchar2(1024), 
  CONSTRAINT pk_groupid PRIMARY KEY(groupid)
);

CREATE TABLE groupspersonx ( 
  personid number, 
  groupid number, 
  CONSTRAINT pk_persongroupid PRIMARY KEY(personid, groupid),
  CONSTRAINT fk_persongroup FOREIGN KEY(groupid) REFERENCES restrictedgroups(groupid) 
); 

J'ajouterais une contrainte de clé étrangère pour n'importe quelle table le personid viendrait.