Hola huesos, gracias nuevamente por tu ayuda, pero lo hice como me dijiste mi trigger lo tengo asi ahora:
Código:
CREATE OR REPLACE FUNCTION cancelar_familia_antes_de_nino() returns TRIGGER AS
$$
DECLARE
ninos record;
padres record;
BEGIN
SELECT INTO ninos T1.IF AS id_familia, count(fxh.id_familia) AS numhijos FROM
(SELECT id_familia AS IF FROM familia_x_hijos WHERE id_nino=new.id_nino)AS T1
INNER JOIN familia_x_hijos fxh ON T1.IF = fxh.id_familia
GROUP BY T1.IF;
UPDATE familia_x_hijos SET estado = 'DESACTIVADO' WHERE id_nino=NEW.id_nino;
IF ninos.numhijos = 1 then
SELECT rut_padre,rut_madre FROM familia WHERE id_familia=NEW.id_familia;
UPDATE familia SET estado = 'DESACTIVADO' WHERE id_familia=new.id_familia;
UPDATE padre SET estado = 'DESACTIVADO' WHERE rut_padre=NEW.rut_padre;
UPDATE madre SET estado = 'DESACTIVADO' WHERE rut_madre=NEW.rut_madre;
END IF;
RETURN new;
End;
$$
LANGUAGE 'plpgsql';
CREATE TRIGGER cancelar_familia_antes_de_nino before
UPDATE ON nino
FOR each row execute procedure cancelar_familia_antes_de_nino();
y el error q me da ahora al ejecutar el update del campo estado del niño a desactivado es el siguiente:
Código:
ERROR: record "new" has no field "id_familia"
Estado SQL:42703
Contexto:PL/pgSQL function "cancelar_familia_antes_de_nino" line 28 at SQL statement
el update lo hago en la misma bd asi:
Código:
UPDATE nino SET estado='DESACTIVADO' WHERE nino.id_nino= '0001'
en q estoy fallando ahora amigos??? porfavor de verdad ruego su ayuda amigos!!!... de antemano gracias.... bye