SERIAL type's sequence is double-called or ?
От | Aleksandr Vinokurov |
---|---|
Тема | SERIAL type's sequence is double-called or ? |
Дата | |
Msg-id | 46E154D2.8040203@gmail.com обсуждение исходный текст |
Ответы |
Re: SERIAL type's sequence is double-called or ?
|
Список | pgsql-sql |
Hello all, I have a question with the SERIAL type. I want to use it for default identification of table entries: create table chuwee ( num serial primary key, mesg varchar(50) not null ); And all the inserts to this table I'm gonna log to this table: create table chuwee_log ( id serial primary key, date timestamp default current_timestamp, num integer not null, mesgvarchar(50) not null ); Logging will be done with this rule: create or replace rule chuwee_rule as on insert to chuwee do insert into chuwee_log (num, mesg) values (new.num, new.mesg); And all seems to work, but a sequence is called twice for inserts, and logged "num"-s get a +1 value: sunline=# insert into chuwee (mesg) values ('Hello, world!'); INSERT 9596671 1 sunline=# insert into chuwee (mesg) values ('Aquarium full of tequilla'); INSERT 9596673 1 sunline=# select * from chuwee_log; id | date | num | mesg ----+----------------------------+-----+--------------------------- 1 | 2007-09-08 16:18:26.707384 | 2 | Hello, world! 2 | 2007-09-08 16:18:58.711599 | 4 | Aquarium full of tequilla (2 rows) sunline=# select * from chuwee; num | mesg -----+--------------------------- 1 | Hello, world! 3 | Aquarium full of tequilla (2 rows) How it can be cured, if any? Best dishes, Aleksandr.
В списке pgsql-sql по дате отправления: