currval() in insert statements
От | Onno Molenkamp |
---|---|
Тема | currval() in insert statements |
Дата | |
Msg-id | 200902141225.59304.onno@flox.org обсуждение исходный текст |
Ответы |
Re: currval() in insert statements
Re: currval() in insert statements Re: currval() in insert statements Re: currval() in insert statements |
Список | pgsql-general |
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
Вложения
В списке pgsql-general по дате отправления: