On Wed, 30 Dec 2009 20:04:51 -0600, Seb <spluque@xxxxxxxxx> wrote: > On Wed, 30 Dec 2009 19:39:15 -0600, > Seb <spluque@xxxxxxxxx> wrote: > CREATE RULE footwear_nothing_upd AS >> ON UPDATE TO footwear DO INSTEAD NOTHING; CREATE RULE >> footwear_newshoelaces_upd AS ON UPDATE TO footwear WHERE NEW.sl_name >> <> OLD.sl_name AND OLD.sl_name IS NULL DO INSERT INTO shoelaces >> (sh_id, sl_name) VALUES(NEW.sh_id, NEW.sl_name); > I think my error is in the test expression, which doesn't deal > properly with the null value, so correcting: > CREATE RULE footwear_nothing_upd AS > ON UPDATE TO footwear DO INSTEAD NOTHING; > CREATE RULE footwear_newshoelaces_upd AS > ON UPDATE TO footwear > WHERE NEW.sl_name IS DISTINCT FROM OLD.sl_name AND OLD.sl_name IS NULL > DO > INSERT INTO shoelaces (sh_id, sl_name) > VALUES(NEW.sh_id, NEW.sl_name); > However, could a more direct and robust test for an inexistent record > in 'shoelaces' be made? Any ideas? I'm not sure this is the best way to test whether the record to update corresponds to a inexistent record in 'shoelaces'. Thanks. -- Seb -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general