Re: transactions on Postgresql

Поиск
Список
Период
Сортировка
От lachesis@ignmail.com (Dave Robinson)
Тема Re: transactions on Postgresql
Дата
Msg-id 90af9a8c.0105240502.2fbc2027@posting.google.com
обсуждение исходный текст
Список 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 по дате отправления:

Предыдущее
От: Justin Clift
Дата:
Сообщение: CLISP ?
Следующее
От: "Dave Cramer"
Дата:
Сообщение: Re: can't start as root