Re: A little RULE help?
От | Adrian Klaver |
---|---|
Тема | Re: A little RULE help? |
Дата | |
Msg-id | 13cd6084-ea37-6bc3-6f9a-851f5606f719@aklaver.com обсуждение исходный текст |
Ответ на | RE: A little RULE help? (Steven Winfield <Steven.Winfield@cantabcapital.com>) |
Список | pgsql-general |
On 01/25/2018 03:34 PM, Steven Winfield wrote: > Maybe this?: > > https://www.postgresql.org/docs/10/static/sql-createrule.html > > "There is a catch if you try to use conditional rules for complex view > updates: there must be an unconditional INSTEAD rule for each action you > wish to allow on the view. If the rule is conditional, or is not > INSTEAD, then the system will still reject attempts to perform the > update action, because it thinks it might end up trying to perform the > action on the dummy table of the view in some cases. If you want to > handle all the useful cases in conditional rules, add an unconditional > DO INSTEAD NOTHING rule to ensure that the system understands it will > never be called on to update the dummy table. Then make the conditional > rules non-INSTEAD; in the cases where they are applied, they add to the > default INSTEAD NOTHING action. (This method does not currently work to > support RETURNING queries, however.)" > > Thanks, I saw that – but none of my rules are conditional, and they are > all INSTEAD OF, so I didn’t think that was the problem. My mistake I saw: UPDATE rule_test SET tt = tstzrange(lower(tt), CURRENT_TIMESTAMP, '[)') WHERE id = OLD.id; and in my head transformed that into a conditional RULE. > > FYI, I gave up on RULE's a while back. Triggers are a lot easier to > figure out and maintain. > > These rules (including the non-working UPDATE rule) seemed fairly small > and quite readable, > > so I didn’t think maintenance would be a problem. > > Debugging this is a bit harder, however… The reason I gave up on rules, figuring out how the query rewrite system works is a bear. I understand(most of the time) what triggers do, so I stick with what I understand. > > Steve. > > > > -- Adrian Klaver adrian.klaver@aklaver.com
В списке pgsql-general по дате отправления: