[sf-perl] PostgreSQL DBD ---- repost: sorry, I had the wrong subject in my previous post

David Fetter david at fetter.org
Thu Mar 31 18:44:15 PST 2005

On Thu, Mar 31, 2005 at 06:03:44PM -0800, Shane Hill wrote:
>  Hey folks,
>  I hope all are well.
>  I am using the DBI with postgres and all is good except that when I
>  use the last_insert_id function.  I simply cannot get it work when I
>  use it according to the docs.
>  I am using it in the form :
>  my $id = $self->connection->last_insert_id(undef,undef,$table_name,undef);

Looking at the DBI docs, it says, "For some drivers the $catalog,
$schema, $table, and $field parameters are required (e.g., Pg)..."

Actually, $catalog should be undef (no such concept in Pg), but the
schema is probably 'public' or your username, unless you're using
different schemas.  Anyhow, I'm puzzled, but I have a fix.  After
you've checked whether the INSERT succeeded (you're doing that anyway,
RIGHT?!? ;) just do:

    SELECT currval('the_name_of_the_appropriate_seq');

Not quite as convenient, and I've got a query in to the DBD::Pg dev
team, but it will work.

>  $table_name is defined and assigned.
>  the docs say this is ok,  how am I screwing up?

You're not :)  You're asking for help.

David Fetter david at fetter.org http://fetter.org/
phone: +1 510 893 6100   mobile: +1 415 235 3778

Remember to vote!

More information about the SanFrancisco-pm mailing list