sql >> Databáze >  >> RDS >> Oracle

Složený primární klíč / otázka cizího klíče Oracle

Chyba je způsobena tím, že FOREIGN KEY je jeden sloupec, ale vy se pokoušíte zadat dva sloupce jako nadřazený. Není třeba se vázat na složený klíč, protože restrictedgroups nemá personid sloupec...

Vztah máte i obráceně – použijte:

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

Přidal bych omezení cizího klíče pro jakoukoli tabulku personid by pocházel z.



  1. Uživatelský alias Oracle DB

  2. Výměna řetězce Oracle

  3. Jak vložit více řádků pomocí funkce v PostgreSQL

  4. Odstraňování problémů Nelegální kombinace chyb porovnávání v mysql