Tom Lane wrote: > OK, I'm a bit confused by the obfuscation here. The table with the > duplicates is xxx, or qqq?
Possibly less obscure version: public | tg_update_anotherTable_date | "trigger" | | mail | plpgsql | Declare uid bigint; Begin uid = (select owner_id from anotherNotherTable m where m.keyField = NEW.fkField); if (uid <> 0 and not uid is null) then update brokenTable set some_date = 'now' where id=uid; end if; Return NEW; End; | and there's also a rewrite rule: aView_update_r1 AS ON UPDATE TO aView DO INSTEAD UPDATE brokenTable SET f1 = new.f1 WHERE brokenTable.id = new.id aView_update_r2 AS ON UPDATE TO aView DO INSTEAD UPDATE brokenTable SET f2 = new.f2 WHERE brokenTable.id = new.id ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match