"Simon Keen" <simon(dot)keen(at)eglimited(dot)co(dot)uk> writes:
> I have used serial columns as primary keys in some tables. I have a rule
> that on insert to a table inserts in another table. However, the rule
> appears to cause the seq nextval() to be invoked multiple times thus
> destroying any value in NEW.serial_col.
This is a well-known issue arising from the fact that a rule is really a
macro: multiple references to any expression in the original statement
result in multiple evaluations of that expression.
By and large, the best way to propagate inserted information to other
tables is with a trigger.
regards, tom lane