Обсуждение: sequenc_name.currval not defined

Поиск
Список
Период
Сортировка

sequenc_name.currval not defined

От
MT
Дата:
Hi,

I keep on getting the following error when I attempt to insert a new record:

SELECT * FROM table_name WHERE tableid = currval('tableid_seq');

PostgreSQL said: ERROR: tableid_seq.currval is not yet defined in this
session.

What's weird about this problem is that I have a script that
successfully performs this action.

Thanks for your help,

Mark



Re: sequenc_name.currval not defined

От
Philip Hallstrom
Дата:
you have to call nextval() before you can use currval().

On Thu, 21 Nov 2002, MT wrote:

> Hi,
>
> I keep on getting the following error when I attempt to insert a new record:
>
> SELECT * FROM table_name WHERE tableid = currval('tableid_seq');
>
> PostgreSQL said: ERROR: tableid_seq.currval is not yet defined in this
> session.
>
> What's weird about this problem is that I have a script that
> successfully performs this action.
>
> Thanks for your help,
>
> Mark
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly
>


Re: sequenc_name.currval not defined

От
"scott.marlowe"
Дата:
On Thu, 21 Nov 2002, MT wrote:

> Hi,
>
> I keep on getting the following error when I attempt to insert a new record:
>
> SELECT * FROM table_name WHERE tableid = currval('tableid_seq');
>
> PostgreSQL said: ERROR: tableid_seq.currval is not yet defined in this
> session.
>
> What's weird about this problem is that I have a script that
> successfully performs this action.

currval only works during a session when nextval or setval have been run.
It's how it's supposed to work.  It's part of the magic of making
sequences transaction safe.