nextval(), and serial updates

Поиск
Список
Период
Сортировка
От Sampath, Krishna
Тема nextval(), and serial updates
Дата
Msg-id EDD4714513C8D2118B940090273D1A82065DA1@NJ01SNT11
обсуждение исходный текст
Ответы Re: nextval(), and serial updates  (Silvio Macedo <s.macedo@ic.ac.uk>)
Список pgsql-general
Normally, currval() points to the index sequence for the last inserted
record.

However, after I call
    select nextval('i_seq'::text)
on the serial data tyep i_seq, the counter gets incremented by 1. The next
INSERT skips a number in the sequence. Is this by design? I was a bit
surprized because the currval() gets incremented also, and you no longer
point to the last inserted record.

puzzled,
krishna

concrete example:
create table t1 ( i serial, s varchar(20) );    -- create table
insert into t1 (s) values ('first line');        -- insert 1 record
select * from t1;                        -- gives (1
row)
select currval('t1_i_seq');                -- gives 1 as
currval .. ok
select nextval('t1_i_seq');                -- gives 2 as
nextval .. ok so far
select currval('t1_i_seq');                -- gives 2 as
currval ... should this be 1?
insert into t1 (s) values ('second line');    -- inserts second line,
serial id set to 3
select * from t1;                        -- (2 rows)
i is now 3, should be 2



В списке pgsql-general по дате отправления:

Предыдущее
От: Lamar Owen
Дата:
Сообщение: Re: The "nl" RPMs.
Следующее
От: "Ross J. Reedstrom"
Дата:
Сообщение: Re: SELECT speed with LIKE