Re: transactions on Postgresql - Mailing list pgsql-general

From lachesis@ignmail.com (Dave Robinson)
Subject Re: transactions on Postgresql
Date
Msg-id 90af9a8c.0105240502.2fbc2027@posting.google.com
Whole thread Raw
List pgsql-general
hicham bouzdad <h.bouzdad@inovaction.com> wrote in message news:<3B0B8A0C.B46AC073@inovaction.com>...
> Hi everybody,
>
> my subject is about :   DBI / PostgreSql  &  Transactions  with Perl.
> my code is :
>
> $dbh->{AutoCommit} = 0;      #-------- begin of transaction
> while (<FILE>) {
> ...
>     $sql  =  "insert into $table ($col) values ($val)";
>     $res  =  $dbh->do($sql);
> }
>
> $dbh->rollback;                    #--------- end of transaction
>
> my problem : if an insert fail, all following insert are aborted :-(
>
> NB :         it's not necessary to me that ALL  inserts , will be done
> with succes.
> my question  is :   if  a  BAD insert fail ,  how can i do  for  doing
> other inserts who may be are GOOD ?
>
> thanks a lot for help ;-)


You want to look at wrapping your do statement into an eval block you
can then capture the insert death in $@

i.e.

eval{
$res  =  $dbh->do($sql);
};
if ($@){
#if the do failed - do whatever logging/checking you want
}

pgsql-general by date:

Previous
From: Justin Clift
Date:
Subject: CLISP ?
Next
From: "Dave Cramer"
Date:
Subject: Re: can't start as root