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.