Thread: sequenc_name.currval not defined
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
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 >
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.