Re: problem fetching currval of sequence

From: Charles Hauser <chauser(at)duke(dot)edu>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: problem fetching currval of sequence
Date: 2002-08-06 16:43:32
Message-ID: a05111b02b975aa9d9743@[152.3.11.193]
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Tom,

Quite right, I did mean to do an INSERT. Changing the script to do
so though I still get the error:
ERROR: gb_gb_id_seq.currval is not yet defined in this session.

foreach $id(sort keys %ACCN) {
$conn->exec(
"INSERT INTO gb (clone_id,accn,gi)
VALUES ( '$ACCN{$id}{clone_id}','$ACCN{$id}{gb}','$ACCN{$id}{gi}')";
);

$result = $conn->exec("SELECT currval('gb_gb_id_seq');");
die $conn->errorMessage unless PGRES_TUPLES_OK eq
$result->resultStatus;
$gb_id = $result->fetchrow;
$ACCN{$id}{gb_id} = $gb_id;
}

>Charles Hauser <chauser(at)duke(dot)edu> writes:
>> foreach $id(sort keys %ACCN) {
>> $conn->exec(
>> "UPDATE gb SET accn_no = '$ACCN{$id}{gb}',gi_no =
>> '$ACCN{$id}{gi}' WHERE clone_id = '$ACCN{$id}{clone_id}'"
>> );
>
>> $result = $conn->exec("SELECT currval('gb_gb_id_seq');");
>
>This isn't inserting any new row, so nextval() isn't called, so there's
>nothing for currval() to work on. Are you sure you did not mean to do
>an INSERT?
>
>If you did want an UPDATE, seems like you could do
>
> SELECT gb_id FROM gb WHERE clone_id = '$ACCN{$id}{clone_id}'
>
> regards, tom lane

--
Regards,

Chuck

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Tom Lane 2002-08-06 16:48:32 Re: problem fetching currval of sequence
Previous Message Tom Lane 2002-08-06 16:25:44 Re: problem fetching currval of sequence