[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