Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Frage zum zusammengesetzten Primärschlüssel/Fremdschlüssel von Oracle

Der Fehler liegt daran, dass der FOREIGN KEY eine Spalte ist, Sie aber versuchen, zwei Spalten als übergeordnetes Element anzugeben. Es besteht keine Notwendigkeit, an den zusammengesetzten Schlüssel zu binden, da die restrictedgroups hat keine personid Spalte...

Sie haben auch die Beziehung rückwärts - verwenden Sie:

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) 
); 

Ich würde eine Fremdschlüsseleinschränkung für jede Tabelle der personid hinzufügen kommen würde.