[Cascavel-pm] Como verificar se um registro já existe antes de inserir no banco?

Igor Sutton igor.sutton em gmail.com
Segunda Outubro 23 15:09:38 PDT 2006


On 23/10/2006, at 19:49, Murilo Opsfelder Araújo wrote:

> Não estou certo de como devo implementar isso. O mais correto seria no
> próprio código Perl ou por alguma SQL?

Se você tentar inserir um registro com uma chave primária existente,  
o próprio banco de dados irá reclamar. Creio que se você utilizar  
algo do tipo funcione:

my $stmt = $dbh->prepare(qq{INSERT INTO tabela VALUES (?, ?)});

foreach my $data (@datum) {
     unless ($stmt->execute($data->{val1}, $data->{val2})) {
         warn "An error occurred: ", $stmt->errstr;
     }
}

Lembre-se: não reinvente a roda. O RDBM tem a obrigação de validar os  
seus dados e manter este tipo de integridade. O que você tem que  
fazer é tratar o erro que ele vai gerar.

Espero que ajude.

--
Igor Sutton
igor.sutton em gmail.com





Mais detalhes sobre a lista de discussão Cascavel-pm