r0xdrig0
La sintaxís que te digo es así. Acomodalo bien para tu caso.
Código sql:
Ver originalCREATE OR REPLACE FUNCTION eliminar_nino() RETURNS TRIGGER AS
$$
DECLARE
nino record;
BEGIN
SELECT INTO nino COUNT(id_familia) AS numhijos FROM familia WHERE id_nino=NEW.id_nino;
IF nino.numhijos = 0 THEN
DELETE FROM familia WHERE OLD.id_familia=id_familia;
END IF;
RETURN OLD;
END;
$$
LANGUAGE 'plpgsql';
CREATE TRIGGER borrar_antes_de_nino BEFORE
DELETE ON nino
FOR each ROW EXECUTE PROCEDURE eliminar_nino();
Numhijos es el alias que le damos al conteo y que se puede acceder mediante el record. Por eso se llama nino.numhijos para hacer la comparación.
Según entiendo, deseas borrar la familia solo si ya no tiene mas hijos registrados.
Porque borrarias la familia antes de borrar en la tabla niño?
Ten cuidado con el momento en que se ejecutan los eventos.
Este pequeño manual me ha servido mucho.
http://www.scribd.com/doc/102837/Triggers-en-PostgreSQL
Nos cuentas como te va.