Restringir registros duplicados no banco[RESOLVIDO]

8 respostas
ganondorfan

Boa tarde pessoal,

É uma tabela de objetos, cada objeto tem um numero identificador unico, e tem um dono.
Eu quero criar um regra no banco que nao permita que um objeto com mesmo numero pertença mais de uma vez em um dono, ele pode pertencer a outros donos, mas nao pertencer duas vezes no mesmo. (dificil de explicar rs)

Se alguem souber uma solução eu agradeço.

Att. Paulo

8 Respostas

aluisiodsv

Isso resolve o problema.

ganondorfan

eu nao posso separar a tabela, antes eu estava usando a coluna UNIQUE, porem isso restringia os outros donos que deveriam poder ter tambem o objeto.

R

Utilize Unique Constraint:

http://www.google.com.br/search?sourceid=chrome&ie=UTF-8&q=unique+constraint

ganondorfan

Unique vai fazer com que minha coluna pare de aceitar valores duplicados, entretanto esta tabela, é uma tabela referente ao objeto, ou seja possui registros de donos diferentes.
exemplo

dono - objeto - id
paulo - faca -001 (Esta linha tem q ser possivel, pois mesmo que pedro tambem tenha este objeto, ele possui donos diferentes)
paulo - garfo -002
pedro - faca - 001
pedro - faca - 001 (quero evitar linhas como esta, pois pedro ja possui uma faca)

R

Unique Constraint != Unique

Unique = Um campo tem que ser único
Unique Constraint = Pode exigir que dois campos únicos (“combinados”), a condição não avalia apenas um dos campos

No seu caso seria colocar Unique Constraint nos campos Dono e Objeto.

Assim as linha:

paulo - faca - 001
pedro - faca - 001

Seriam possíveis!


Irá ocorrer erro com as linhas:

paulo - faca - 001
paulo - faca - 011

Pois, tem o mesmo dono e o mesmo objeto.

Não é isso, que você precisa?

ganondorfan

Exatamente isso que eu quero amigo, teria como vc me mostrar como aplicar esta Constraint, um exemplo ?

R

http://www.google.com.br/search?hl=pt-BR&q=example+unique+constraint&aq=f&aqi=&aql=&oq=&gs_rfai=

Se estiver usando Hibernate
http://www.google.com.br/search?hl=pt-BR&q=unique+constraint+%2B+Hibernate&aq=f&aqi=&aql=&oq=&gs_rfai=

ganondorfan

Só para tornar este topico util para consultas futuras.
Graças ao colega Rafael Viana eu consegui resolver o problema, da seguinte forma

ALTER TABLE tabela ADD UNIQUE (coluna_dono,coluna_objeto)

Muito Obrigado Rafael.

Criado 23 de dezembro de 2010
Ultima resposta 24 de dez. de 2010
Respostas 8
Participantes 3