| 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: | Whole Thread | Raw Message | 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 |