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

Reply via email to