Thread: Rules question

Rules question

From
Adam Kavan
Date:
I am starting to work with rules.  I think I have them down but the
folowing one is giving me grief.  It tells me that it has rewritten 100
times and probably has looped.  The columns ID and Location make up the
primary key so I am sure that the result update should only effect one
row.  Anyone know what I am missing?

CREATE OR REPLACE RULE "set_changed" AS ON UPDATE TO "GameInformation"
WHERE NEW."Changed" =FALSE DO UPDATE "GameInformation" SET "Changed" = TRUE
WHERE "Location" = NEW."Location" AND "ID" = NEW."ID";

--- Adam Kavan
--- akavan@cox.net


Re: Rules question

From
Stephan Szabo
Date:
On Mon, 15 Sep 2003, Adam Kavan wrote:

> I am starting to work with rules.  I think I have them down but the
> folowing one is giving me grief.  It tells me that it has rewritten 100
> times and probably has looped.  The columns ID and Location make up the
> primary key so I am sure that the result update should only effect one
> row.  Anyone know what I am missing?

Rules are like a macro system, you can't generally get around loops by
using where conditions on the rule. You'll need to either break the
recursion by using something like a view or write the logic into a
before trigger.