Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Pergunta de chave primária composta / chave estrangeira do Oracle


O erro é porque a FOREIGN KEY é uma coluna, mas você está tentando fornecer duas colunas como pai. Não há necessidade de vincular à chave composta, porque os restrictedgroups não tem um personid coluna...

Você também tem o relacionamento invertido - use:
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) 
); 

Eu adicionaria uma restrição de chave estrangeira para qualquer tabela que o personid estaria vindo.