On Thu, 2005-10-20 at 15:01 +0100, Richard Huxton wrote: > Sven Willenberger wrote: > > Is this intended behavior? or is the NEW > > acting as a macro that is replace by "nextval(<sequence name>)" ? > > Well, it's understood behaviour even if not quite "intended". > > You are quite right, rules basically act like macros with all the > limitations they have. What is actually happening behind the scenes is > that the query is being rewritten to alter the query-plan tree. You > should be able to get your rule to work by referring to > currval(<sequence-name>) rather than NEW.custid. > > However, in this particular case I think you want an after insert > trigger on customer rather than a rule. > As as AFTER INSERT trigger, I can safely assume here that NEW.custid wil now properly use the actual value of the custid rather than nextval()? I have dropped the rule and created the AFTER INSERT trigger so I guess I will find out shortly enough :-) Thanks, Sven ---------------------------(end of broadcast)--------------------------- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq