PostgreSql: obtenga todas las filas que hacen referencia (a través de claves externas) a una fila en particular en una tabla

Esto parece tan simple, pero no he podido encontrar una respuesta a esta pregunta.

¿Qué quiero? Una tabla maestra con filas que se eliminan cuando no se hace referencia a ellas (a través de claves externas). La solución puede o no ser específica para PostgreSql.

¿Cómo? Uno de mis enfoques para resolver este problema (en realidad, el único enfoque hasta ahora) incluye lo siguiente: Para cada tabla que hace referencia a esta tabla maestra, enUPDATE oDELETE de una fila, para verificar la fila a la que se hace referencia en el maestro, cuántas otras filas aún se refieren a la fila a la que se hace referencia. Si se reduce a cero, también elimino esa fila en el master.

(Si tienes una idea mejor, me gustaría saber!)

En detalle: Tengo una mesa maestra referenciada por muchos otros

CREATE TABLE master (
  id serial primary key,
  name text unique not null
);

Todas las otras tablas tienen el mismo formato en general:

CREATE TABLE other (
  ...
  master_id integer references master (id)
  ...
);

Si uno de estos no esNULL, se refieren a una fila enmaster. Si voy a esto y trato de eliminarlo, recibiré un mensaje de error, porque ya se menciona:

ERROR:  update or delete on table "master" violates foreign key constraint "other_master_id_fkey" on table "other"
DETAIL:  Key (id)=(1) is still referenced from table "other".
Time: 42.972 ms

Tenga en cuenta que no me lleva mucho tiempo resolver esto, incluso si tengo muchas tablas que hacen referenciamaster. ¿Cómo puedo encontrar esta información sin tener que generar un error?

Respuestas a la pregunta(2)

Su respuesta a la pregunta