Gostaria de saber qual a melhor maneira de descobrir se um registro já existe em uma tabela. Pensei em fazer um select pela chave primária da tabela e caso o número de registros fosse maior de 0 então o registro já existe, mas isso tem cara de gambiarra e acho que deve sobrecarregar o sistema. Não tem uma maneira melhor?
Eu penso que para saber se um registro já existe na tabela só existe uma maneira de saber: consultar a tabela.
Um select seria a maneira de fazer isso, e acho que não tem como fugir disso.
jcmarqs
A
ADEMILTONPJ
Caras, se na tabela existe uma chave primária, qualquer tentativa de inserir um registro que já existe resultará em um erro gerado pelo banco. Este erro poderia então ser capturado no bloco catch e receber o devido tratamento, como por exemplo mostrar uma mensagem para o caro usuário.
H
HaritosPJ
Chaves primárias são justatmente para isso, verificar se já existe algum registro na tabela antes de inserir outro. Portanto o nosso amigo ADEMILTON está corretíssimo e também não existe outra maneira de fugir de um select caso o que vc queira seja apenas consultar.
E sobre sobrecarregar o sistema isso só acontece se a quantidade de consultas for muio , muito , mas muito grande… e a base de dados for gigantesca. Também dependerá do seu servidor e do SGDB que está usando.
Pode ficar tranquilo e usar selects a vontade. Ou caso seja necessário e a consulta não for uma coisa tão simples assim e envolver várias outras consultas uma dependendo do resultado da outra crie uma procedure para te retornar o resultado !!