Tengo la siguiente function:
Código:
Que se ejecuta con un triggert.CREATE FUNCTION registrar_pasaje_viatico() RETURNS "trigger" AS $$BEGIN IF (NEW.pasaje_aereo = 'true') THEN UPDATE solicitudpasaje SET codigo_solicitud_viatico = NEW.codigo_solicitud WHERE codigo_solicitud = NEW."codigo_solicitud"; RETURN new; -- ELSIF (NEW.pasaje_aereo = 'false') THEN -- UPDATE solicitudpasaje SET codigo_solicitud_viatico = NULL WHERE codigo_solicitud = NEW."codigo_solicitud"; -- RETURN new; ELSIF (OLD.pasaje_aereo = 'true') THEN UPDATE solicitudpasaje SET codigo_solicitud_viatico = OLD.codigo_solicitud WHERE codigo_solicitud = OLD."codigo_solicitud"; RETURN old; ELSIF (OLD.pasaje_aereo = 'false') THEN UPDATE solicitudpasaje SET codigo_solicitud_viatico = NULL WHERE codigo_solicitud = OLD."codigo_solicitud"; RETURN old; END IF; END; $$ LANGUAGE plpgsql;
El asunto es, que cuando se inserta un registro nuevo, sí el campo pasaje_aereo se actualiza en la tabla solicitudpasaje tal como está en la función. Pero... sí se actualiza el campo pasaje_aereo no he logrado que se ejecute la respectiva parte de la función
Ideas?