Coluna referenciada
Galera a situação é a seguinte, eu tenho duas tabelas. Uma que se origina de um relacionamento N..N (tabela A) e outra que recebe referencia da tabela N..N (tabela B). Como eu faço para a minha segunda tabela (tabela B) receber as chaves compostas da tabela A?
Depois da tabela criada eu tento passar as chaves através do comando "alter"...
...mas o seguinte erro aparece no momento que eu executo o primeiro ALTER TABLE:
não há restrição de unicidade que corresponde com as colunas informadas na tabela referenciada "tabelaA"
Depois da tabela criada eu tento passar as chaves através do comando "alter"...
ALTER TABLE tabelaB
ADD constraint fk_codAluno FOREIGN KEY(codAluno) REFERENCES tabelaA(codAluno);
ALTER TABLE tabelaB
ADD constraint fk_codProf FOREIGN KEY(codProf) REFERENCES tabelaA(codProfissional);
...mas o seguinte erro aparece no momento que eu executo o primeiro ALTER TABLE:
não há restrição de unicidade que corresponde com as colunas informadas na tabela referenciada "tabelaA"
Marcus Almeida
Curtidas 0
Respostas
Marcelo Senaga
24/06/2013
Como está declarada a tabela A?
GOSTEI 0
Marcus Almeida
24/06/2013
Segue o código da tabela A:
Na tabela B tenho o seguinte:
create table CA( codProfissional integer not null, codAluno integer not null, descricao varchar(50), constraint pk_CA primary key(codProfissional, codAluno), constraint fk_Prof foreign key(codProfissional) references profissional(codigo), constraint fk_Aluno foreign key(codAluno) references aluno(codigo) );
Na tabela B tenho o seguinte:
create table geraPrancha( codigo integer not null, codMidia integer not null, codAluno integer not null, codProf integer not null, dataCriacao date, path varchar(90) not null, constraint pk_geraPrancha primary key(codigo) );
GOSTEI 0
Marcelo Senaga
24/06/2013
Conseguiu resolver?
GOSTEI 0
Marcus Almeida
24/06/2013
Consegui sim, logo mais coloco a solução. Obrigado!
GOSTEI 0
Marcelo Senaga
24/06/2013
Parabéns, tópico resolvido.
GOSTEI 0
Léo Rodrigues
24/06/2013
sim, kd a solução da caso dessa sua tabela com fk. ??
quero ver a resposta correta.
Léo Rodrigues
quero ver a resposta correta.
Léo Rodrigues
GOSTEI 0
Ronaldo Lanhellas
24/06/2013
Acho que nem é necessário esperar a resposta dele. Acontece que a "foreing key" não está referenciando a chave composto, o certo seria:
Se a tabela A não tiver essa chave, deve ter pelo menos uma chave burra (ID) para facilitar o relacionamento.
ALTER TABLE tabelaB ADD constraint fk_codAlunoCodProf FOREIGN KEY(codAluno, codProf) REFERENCES tabelaA(codAlun, codProf);
Se a tabela A não tiver essa chave, deve ter pelo menos uma chave burra (ID) para facilitar o relacionamento.
GOSTEI 0