From: | Dan Fitzpatrick <dan(at)eparklabs(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Update view/table rule order of operations or race condition |
Date: | 2010-03-09 18:35:23 |
Message-ID: | DD3DACB0-408C-410B-9261-B702705FBD59@eparklabs.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Mar 9, 2010, at 11:00 AM, Tom Lane wrote:
> Dan Fitzpatrick <dan(at)eparklabs(dot)com> writes:
>> The rule is creating a new value from the sequence a_a_id_seq for
>> "new.options_id" on each UPDATE call. How do I use the variable
>> new.options_id in the three update statements without incrementing
>> the
>> sequence again?
>
> You don't. This is one of the major disadvantages of rules: they're
> macros, not functions, and as such don't have any real local
> variables.
> You should probably look into whether you can do what you want with a
> trigger instead of a rule.
>
> regards, tom lane
Can you have a trigger on a view? I thought you can only use rules
with a view.
As another option, can you pass "NEW" (the incoming data record) as a
variable to a function or does each field in NEW have to be explicitly
passed to the function?
From | Date | Subject | |
---|---|---|---|
Next Message | Adrian Klaver | 2010-03-09 18:41:26 | Re: \copy command: how to define a tab character as the delimiter |
Previous Message | Tom Lane | 2010-03-09 18:27:07 | Re: \copy command: how to define a tab character as the delimiter |