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

Igor Sutton igor.sutton em gmail.com
Terça Outubro 24 15:44:58 PDT 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


On 24/10/2006, at 19:14, André Garcia Carneiro wrote:

>
> Se o seu mysql for 4x, então ele suportará transações, mas somente  
> com tabelas InnoDB. Não sei os detalhes
> desse tipo de coisa, mas sei que funciona. Não sei fazer isso  
> diretamente via SQL, mas o phpmyadmin muda isso,
> vc escolhe uma tabela e clica no link "Operações". É bem mais  
> rápido do q caçar SQLs... :), embora não muito
> aconselhável, devo dizer.
>
> Se quiser testar com o DBI, inicie a conexão setando o Autocommit =  
> 0, através do método
> DBI->connect(<parâmetros de conexão>,{AutoCommit=>0});
> depois utilize os métodos de transação - $dbh->begin_work, $dbh- 
> >commit e $dbh->rollback;
>
> E não se esqueça do bom e velho RTFM, para tirar possíveis dúvidas...
> http://search.cpan.org/~timb/DBI-1.52/DBI.pm    ou se você tiver os  
> manuais instalados abra um terminal e
> digite:  perldoc DBI
>
> Cheers!

Creio que o problema aqui não é ter ou não transações. Possuindo  
chaves PRIMARY KEY e UNIQUE, o banco de dados avisará você quando ele  
inserir um registro duplicado. Você tem que pensar no seu problema:  
você deve inserir *todas* as linhas com sucesso, ou avaliar se a  
linha foi inserida registro a registro. Se o seu caso for o primeiro,  
você decididamente necessita de um banco com suporte a transações.  
Para o segundo caso não é necessário ao meu ver.

Espero que ajude.

- --
Igor Sutton
igor.sutton em gmail.com



-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)

iD8DBQFFPpdtKuhQxiIVvZwRAgI3AKCYtAe0znMaLah4aptNRg4MTRy64wCfQpIm
rrqzseUKhAvEIGREUOyUVAA=
=LeKU
-----END PGP SIGNATURE-----


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