Thayse Posted May 11, 2012 Report Share Posted May 11, 2012 Boa tarde pessoal.Estou usando MySQL e precisava fazer um relacionamento onde duas FK de uma mesma tabela se relaciona com um PK de outra.Uma exemplo simples é:tbPessoasid | nome | idUserCadastrou | idUserAlterou1 teste 1 2tbUserid | nome1 user12 user2Na tabela pessoas o campo idUserCadastrou precisa relacionar com "id" da tbUser,e o campo idUserAlterou da tbPessoas também precisa relacionar com "id" da tbUserAi temos duas FK na mesma tabela se relacionando com uma PK de outra.Isso é possível? Como?Só consigo fazer o primeiro relacionamento:ALTER TABLE `tbPessoas`ADD CONSTRAINT `fk_pessoas_user_cad` FOREIGN KEY (`idUserCad`) REFERENCES `tbUser` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;O segundo pra linkar o outro campo da erro.ALTER TABLE `tbPessoas`ADD CONSTRAINT `fk_pessoas_user_alt` FOREIGN KEY (`idUserAlt`) REFERENCES `tbUser` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION; :unsure: Link to comment Share on other sites More sharing options...
0 Jhonas Posted May 11, 2012 Report Share Posted May 11, 2012 use o mysql-front... vai te ajudar nisso e muito maishttp://www.superdownloads.com.br/download/100/mysql-front/abraço Link to comment Share on other sites More sharing options...
0 Thayse Posted May 11, 2012 Author Report Share Posted May 11, 2012 Eu já uso o SQL Yog pra gerenciamento do bd.Precisava era saber se tem como linkar duas FK com uma PK como demonstrei, como ficaria o script pra isso? Link to comment Share on other sites More sharing options...
0 Denis Courcy Posted May 12, 2012 Report Share Posted May 12, 2012 Eu já uso o SQL Yog pra gerenciamento do bd.Precisava era saber se tem como linkar duas FK com uma PK como demonstrei, como ficaria o script pra isso?Faça assim:SELECT p.nome, ucad.nome, ualt.nome FROM tbPessoas p INNER JOIN tbUser ucad ON ucad.id = p.idUserCadastrou INNER JOIN tbUser ualt ON ualt.id = p.idUserAlterou Link to comment Share on other sites More sharing options...
0 Thayse Posted May 14, 2012 Author Report Share Posted May 14, 2012 O que eu não estava conseguinda era criar o relacionamento entre as tabelas"ALTER TABLE tabela ADD CONSTRAINT ..... "Mas já descobri o que era...Eu criei as tabelas com letras maiúsculas e minúsculas alternadas... mas na hora de fazer o alter table pra criar o relacionamentoeu tinha que colocar tudo em minúsculo, mesmo que eu tenha criado em maiúsculo.... <_< Mas obrigada pelas respostas. :) Link to comment Share on other sites More sharing options...
Question
Thayse
Boa tarde pessoal.
Estou usando MySQL e precisava fazer um relacionamento onde duas FK de uma mesma tabela se relaciona com um PK de outra.
Uma exemplo simples é:
tbPessoas
id | nome | idUserCadastrou | idUserAlterou
1 teste 1 2
tbUser
id | nome
1 user1
2 user2
Na tabela pessoas o campo idUserCadastrou precisa relacionar com "id" da tbUser,
e o campo idUserAlterou da tbPessoas também precisa relacionar com "id" da tbUser
Ai temos duas FK na mesma tabela se relacionando com uma PK de outra.
Isso é possível? Como?
Só consigo fazer o primeiro relacionamento:
ALTER TABLE `tbPessoas`
ADD CONSTRAINT `fk_pessoas_user_cad` FOREIGN KEY (`idUserCad`) REFERENCES `tbUser` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
O segundo pra linkar o outro campo da erro.
ALTER TABLE `tbPessoas`
ADD CONSTRAINT `fk_pessoas_user_alt` FOREIGN KEY (`idUserAlt`) REFERENCES `tbUser` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
:unsure:
Link to comment
Share on other sites
4 answers to this question
Recommended Posts