Re: Fwd: Strange behaviour of RULE (selecting last inserted ID of 'sequenced' column)
От | Jim Nasby |
---|---|
Тема | Re: Fwd: Strange behaviour of RULE (selecting last inserted ID of 'sequenced' column) |
Дата | |
Msg-id | 02156ABB-5341-4A9D-A69F-12F7FC5D7625@pervasive.com обсуждение исходный текст |
Ответ на | Fwd: Strange behaviour of RULE (selecting last inserted ID of 'sequenced' column) ("Nikolay Samokhvalov" <samokhvalov@gmail.com>) |
Ответы |
Re: Fwd: Strange behaviour of RULE (selecting last inserted ID of 'sequenced' column)
|
Список | pgsql-bugs |
More of a gotcha than a bug... basically, your select rule is hitting the sequence again. I think there's a section in the rules chapter that talks about this. GeneralBits might also have info. Probably a better question is, what are you trying to do? On Aug 4, 2006, at 4:50 AM, Nikolay Samokhvalov wrote: > I still think that this is quite strange behaviour. When I write > '...SELECT NEW.id...' I don't expect that another calling of column's > default expr will take place. I just want to have access to "id" > column of just-created row. > > Any thoughts? > > ---------- Forwarded message ---------- > From: Nikolay Samokhvalov <samokhvalov@gmail.com> > Date: Jul 13, 2006 6:15 PM > Subject: Strange behaviour of RULE (selecting last inserted ID of > 'sequenced' column) > To: PostgreSQL-general <pgsql-general@postgresql.org> > > > Is this a bug? > > test=> create sequence strange_seq; > CREATE SEQUENCE > test=> create table strange(id integer not null default > nextval('strange_seq') primary key, data text); > NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index > "strange_pkey" for table "strange" > CREATE TABLE > test=> create rule strange_rule as on insert to strange do select > new.id as id; > CREATE RULE > test=> insert into strange(data) values('adas'); > id > ---- > 2 > (1 row) > > test=> select * from strange; > id | data > ----+------ > 1 | adas > (1 row) > > test=> insert into strange(data) values('adas'); > id > ---- > 4 > (1 row) > > test=> insert into strange(data) values('adas'); > id > ---- > 6 > (1 row) > > test=> select * from strange; > id | data > ----+------ > 1 | adas > 3 | adas > 5 | adas > (3 rows) > > > -- > Best regards, > Nikolay > > > -- > Best regards, > Nikolay > > ---------------------------(end of > broadcast)--------------------------- > TIP 5: don't forget to increase your free space map settings > -- Jim C. Nasby, Sr. Engineering Consultant jnasby@pervasive.com Pervasive Software http://pervasive.com work: 512-231-6117 vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461
В списке pgsql-bugs по дате отправления: