-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- Trigger de UPDATE: tua_mdp_personas_documentos -- AFTER UPDATE -- Tabla: mdp_personas_documentos -- Version: 3.0.0 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- DROP FUNCTION ftua_mdp_personas_documentos (); CREATE OR REPLACE FUNCTION ftua_mdp_personas_documentos () RETURNS trigger AS $BODY$ DECLARE _documento integer; BEGIN -- Si cambió la fecha desde/hasta entonces actualizo las clases de las bandas horarias asociadas IF OLD.tipo_documento <> NEW.tipo_documento THEN _documento := NULL; -- Recupero el documento que queda como principal el primero segun el orden del tipo de documento. SELECT mdp_personas_documentos.documento INTO _documento FROM mdp_personas_documentos, mdp_tipo_documento WHERE persona = NEW.persona AND mdp_personas_documentos.tipo_documento = mdp_tipo_documento.tipo_documento ORDER BY mdp_tipo_documento.orden_principal ASC LIMIT 1; -- Actualizo el documento principal de la persona. UPDATE mdp_personas SET documento_principal = _documento WHERE persona = NEW.persona; END IF; RETURN NEW; END; $BODY$ LANGUAGE 'plpgsql'; -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- Trigger de UPDATE sobre mdp_personas_documentos -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- DROP TRIGGER tua_mdp_personas_documentos ON mdp_personas_documentos RESTRICT; CREATE TRIGGER tua_mdp_personas_documentos AFTER UPDATE ON mdp_personas_documentos FOR EACH ROW EXECUTE PROCEDURE ftua_mdp_personas_documentos();