Re: DBI/DBD::Pg and transactions

From: "Roderick A(dot) Anderson" <raanders(at)acm(dot)org>
To:
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: DBI/DBD::Pg and transactions
Date: 2007-07-18 21:29:09
Message-ID: 469E8625.5010804@acm.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Greg Sabino Mullane wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: RIPEMD160
>
>
>> Will a $sth->execute()
>> of a "SELECT ... FOR UPDATE" statement allow me to update the selected
>> records using
>> $uth->execute( ... )
>> if $sth and $uth are both created/prepared from the same database handle
>> "$dbh"?
>
> You are allowed to update either way, but the lock created by the first
> execute will be in place for the second, as long as those statement handles
> are from the same $dbh (database handle).

So how would I update selected rows (tuples) from the first execute a
"SELECT ... FOR UPDATE" with the second.

*The rest of the story:*

This script will be run via cron.

It will query a table for orders that are ready. It may take longer
than the cron interval to process the orders and some of the orders may
be left as ready ie. not done.

If the order gets done I need to update it's row (tuple) as done.

In the mean time if the script gets triggered again and the first
instance isn't finished the second needs to not be able to select those
records already being handled.

Which then, suddenly like a smack on top of the head, makes me think of
how to select using the same "SELECT ... FOR UPDATE" query only those
non-locked records.

Man this is getting deeper every time I look at it.

Rod
--
In general, connecting via DBI
> always gives you one connection unless you explicitly create a second one
> by calling DBI->connect.
>
> - --
> Greg Sabino Mullane greg(at)turnstep(dot)com
> End Point Corporation
> PGP Key: 0x14964AC8 200707181533
> http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8
>
>
> -----BEGIN PGP SIGNATURE-----
>
> iD8DBQFGnmspvJuQZxSWSsgRAxjIAJ0TRN5bTs9s1/Z3/YC/rzGdpEhWiACg11Ca
> sdXpTplc1laTXywTrd+8nBw=
> =5iA0
> -----END PGP SIGNATURE-----
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Have you searched our list archives?
>
> http://archives.postgresql.org/

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Michael Glaesemann 2007-07-18 21:29:21 Re: Need help optimizing this query
Previous Message Gregory Stark 2007-07-18 21:28:07 Re: Update of table lags execution of statement by >1 minute?