Hello,
I have a table (table1) with a column called 'id' which has a default
value of nextval('id_seq'). I insert into table1, it increments, all is
happy. I add a totally unrelated rule (rule1) to this table, one which
just changes the value of a field in another table (table2) (and table2
is in no way connected to the id_seq), and now when I insert into
table1, the sequence gets incremented twice. I'm wondering if this is a
product of the way that rules rewrite the query or something. Any
insight?
Unfortunately, I cannot duplicate this behavior using simple test
tables, but I am quite sure that table2 in no way alters the value of
id_seq. If for instance the value of the sequence before the insert was
10000, I see something like this:
sequence value = 10000
I insert a row into table 1
At the start of the rule1 execution value of sequence is 10001
At the end of the rule1 execution value of sequence is 10001
insert returns
sequence value = 10002
It's got me baffled after exploring it all morning.
Thanks,
Fran