I was thinking of trying something like the following to automatically delete rows from tables that reference large objects when the large object is unlinked. It would depend on pg_class having a PRIMARY key (on the hidden 'oid' column in this possible example): -- this is a generic table to just hold large objects CREATE TABLE lobjs ( id SERIAL CONSTRAINT lobjs_id_con PRIMARY KEY, -- other tables referencing this would also react. lo_oid OID CONSTRAINT lobjs_lo_oid_con NOT NULL, -- holds an actual large object id. lo_ref_oid OID CONSTRAINT lobjs_lo_ref_oid_con REFERENCES pg_class ON UPDATE CASCADE ON DELETE CASCADE INITIALLY DEFERRED ); CREATE RULE set_lo_ref_oid AS ON INSERT TO lobjs DO UPDATE lobjs SET lo_ref_oid = pg_class.oid FROM pg_class WHERE pg_class.relname = "xinx" || new.lo_oid; Something like that (I'd have to check this sql to make sure its right). I don't think there is a primary key on the system tables. I wonder if it would cause problems if there where? Anyway, does anyone know of a way to accomplish something like what I am trying to do with the large objects? -- Robert B. Easter [EMAIL PROTECTED]