On Tue 02 Sep 2008 05:35:25 PM EDT, D. Dante Lorenso wrote: > You could add a trigger to your product_location table that just > double-checked the customers matched or prevents the insert/update. A > PL/PGSQL function like this might help: > > ---------- 8< -------------------- 8< ---------- > > DECLARE > is_ok BOOLEAN; > BEGIN > SELECT p.customer_id = l.customer_id > INTO is_ok > FROM product p, location l > WHERE p.product_id = NEW.product_id > AND l.location_id = NEW.location_id; > > -- didnt find the product and location ... weird > IF NOT FOUND THEN > RETURN NULL; > END; > > -- product customer matches the location customer > IF is_ok = TRUE THEN > RETURN NEW; > END; > > -- product and location customers did NOT match, reject changes > RETURN NULL; > END; > ---------- 8< -------------------- 8< ---------- > > Disclaimer: I have no idea if that code works. I just whipped it up now > without testing it. That might do your checks without having to add > columns to tables you don't want to add. Thanks! This is what I was looking for. Although I got a few syntax errors in postgreSQL 8.3 until I changed a few END; statements to END IF; Also, I had to put: create or replace function check_customer () returns trigger $$ at the top of this, and $$ language 'plpgsql'; at the bottom. I'm a novice at writing triggers, and this is really useful. Thanks again. Matt