The rule is already in place, and I'm hoping to fix the rule itself rather than change the whole process on how this works due to some bureaucracy I'd rather not deal with. Or in other words, I know there are other ways to achieve my goal, but I specifically want to know if it can be done somehow with a rule.
The current rule is that when an update occurs, another update fires to concatenate a few fields together. That update performed by the rule seems to call the rule again and generates an "infinite recursion" error.
Rule example:
ON UPDATE TO people DO
UPDATE people
SET "fullname" = concat(new."firstName", ' ', new."lastName")
WHERE people.id = new.id
Is there any way to tell the update that the rule does to not then call the rule again? Or to flag the rule with some sort of runOnce
? It's my understanding rules alter the query, so I can't do something simple like AND people.fullname != new.fullname
Best Answer
If
fullname
column is never altered manually (i.e. it must matchfirstname
andlastname
values always) then simply use generated column. It will be (re)calculated automatically during insert/update:DEMO