yetiH 0 Denunciar post Postado Junho 14, 2006 Olá pessoal é o seguinte:Tenho uma tabela de produtos, uma tabela de segmentos e uma tabela de relacionamento dessas duas.Onde, produto ID 01 pertence ao segmento ID 02, e assim por diante, acho que vcs me entendem.O problema é que do modo que está, pode haver duplicidade de relacionamentos, acontece de ser cadastrado vários relacionamentos do produto ID 01 com o segmento ID 02 por exemplo. Sendo que só poderia existir um.Acredito que não tem como criar campos únicos pra esse caso, pois só se os dois campos coincidirem é que haverá a repetição.Eu posso fazer isso na minha linguagem de programação (PHP), mas eu quero fazer em SQL.Alguém tem idéia?vlw Compartilhar este post Link para o post Compartilhar em outros sites
ska_ska 0 Denunciar post Postado Junho 15, 2006 não entendi muito bem sua dúvida.. eh isso q você precisa? SELECT a.produto, b.segmentoFROM produto aINNER JOIN segmento b ON a.seg = b.segINNER JOIN relacionamento c ON b.seg = c.seg AND c.produto = a.produtoWHERE b.seg = xxx Compartilhar este post Link para o post Compartilhar em outros sites
yetiH 0 Denunciar post Postado Junho 16, 2006 Não, minha dúvida é na hora da inserção não deixar inserir valores repetidos. Verificar se já possuo um registro igual ao que se está tentando inserir, mas isso via SQL e não PHP digamos. Não posso fazer chaves primárias ou únicas porque os registros só serão iguais se as duas colunas forem iguais, é aí que está minha dúvida. Por exemplo: ---------------- PRODUTOS ---------------- -|-ID-|-NOME- -| 12 | Produto 12 -| 15 | Produto 15 ---------------- SEGMENTOS ---------------- -|-ID-|-NOME- -| 7 | Segmento 7 -| 10 | Segmento 10 ---------------- RELACIONAMENTO ENTRE PRODUTOS E SEGMENTOS ---------------- -|-IDPROD-|-IDSEG- -| 12 | 7 -| 15 | 7 -| 12 | 10 -| 12 | 10 -| 12 | 10 os que estão em negrito estão repetidos, é isso que eu não quero que aconteça! Compartilhar este post Link para o post Compartilhar em outros sites
Eclesiastes 2 Denunciar post Postado Junho 18, 2006 Você pode colocar os 2 campos como UNIQUE sim. Faça isso, e quando tentar inserir os 2 valores iguais, o MySQL retornará o erro nº 1062. Basta você usar a função mysql_errno() (contida na lib MySQL no PHP), e verificar se esse número foi retornado. Se foi retornado, é que houve tentativa de duplicação. http://br2.php.net/mysql-errno Há também o comando REPLACE, se você não conhece, ele faz a exclusão do existente na tabela, e adiciona o novo. Ou seja, ele não deixa duplicar, pois ele elimina um existente para inserir o novo. http://dev.mysql.com/doc/refman/5.0/en/replace.html Compartilhar este post Link para o post Compartilhar em outros sites
yetiH 0 Denunciar post Postado Junho 19, 2006 putz cara! muito show!muita falha minha em não testar isso! mas eu tinha na minha cabeça que iria tornar cada coluna única, e não dava pra fazer as duas juntas!valeu!! matou o que eu tava precisando!o/ Compartilhar este post Link para o post Compartilhar em outros sites