Search Postgresql Archives

currval() in insert statements

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I recently upgraded a database from 8.1.11 to 8.3.6, and I noticed the 
following statement stopped working:

  insert into test (b) select currval('test_a_seq'::regclass)

given the following table:

  create table test (a serial, b int)

The error I'm getting is: "ERROR:  currval of sequence "test_a_seq" is not yet 
defined in this session". With a values clause instead of a select, it still 
works as expected, by inserting two identical values:

  insert into test (b) values (currval('test_a_seq'::regclass))

Although it's easy enough to work around this problem by also explicitly 
inserting nextval('test_a_seq'::regclass) into column "a", I'm wondering why 
it did work in 8.1 and doesn't work anymore in 8.3.

Is this a bug in either version, was is never supposed to work like this, or 
have I missed a change in the release notes somewhere?

Thanks,

Onno

Attachment: signature.asc
Description: This is a digitally signed message part.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux