sql >> Database >  >> RDS >> Oracle

Oracle samengestelde primaire sleutel / externe sleutel vraag

De fout is dat de FOREIGN KEY één kolom is, maar u probeert twee kolommen op te geven als bovenliggende kolom. Het is niet nodig om de samengestelde sleutel te koppelen, omdat de restrictedgroups heeft geen personid kolom...

Je hebt ook de relatie omgekeerd - gebruik:

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

Ik zou een externe sleutelbeperking toevoegen voor welke tabel dan ook de personid vandaan zou komen.



  1. GI 19c RPM Package Manager-database

  2. Los het probleem met de SQL Server-database die vastzit in de verdachte modus op een efficiënte manier op

  3. PostgreSQL verwijderen met inner join

  4. Een tabel horizontaal afdrukken in plaats van verticaal met PHP