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
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.
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)
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?
Exatamente isso que eu quero amigo, teria como vc me mostrar como aplicar esta Constraint, um exemplo ?
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.