recolectar datos extras

Buenas:
queria consultar sobre la preinscripcion version2.9.1. Estamos en guarani 2.9.0 que permite almacenar las fotos de alumnos, y queriamos que desde la preinscripcion la persona nos cargue la foto, estoy siguiendo el instructivo que viene en la personalizacion de ejemplo en manejador-datos. Ya cree la estructura de la tabla con la clave foranea id_preinscripcion, pero no se donde crear la funcion y el trigger asociados para que por cada insert en sga_preinscripcion tambien lo haga en esta tabla, no se si la funcion es schema->public->functions; o directamente en los triggers asociados a la tabla nueva. Ademas al hacer la funcion que se coloca en la pestaña definition->Return type?. Gracias

Hola Romina,

El trigger debería ser creado como AFTER INSERT en la tabla del sistema sga_preinscripcion. Suponiendo que tu tabla extendida se llame unju_sga_preinscripcion, se crearía con este script:


                CREATE OR REPLACE FUNCTION ftia_unju_sga_preinscripcion () RETURNS trigger AS 
		$BODY$
		BEGIN
		  -- Inserta en la tabla extendida
		  INSERT INTO unju_sga_preinscripcion(id_preinscripcion) VALUES (NEW.id_preinscripcion);
		  RETURN NEW;
		END;
		$BODY$
		LANGUAGE 'plpgsql';
	 
		CREATE TRIGGER tia_unju_sga_preinscripcion
			AFTER INSERT ON sga_preinscripcion
			FOR EACH ROW EXECUTE PROCEDURE ftia_unju_sga_preinscripcion();

Saludos,
Fernando

Buen dia:
este codigo que me mandas yo lo ejecuto desde la interfaz grafica de pgadminIII y me da error, porque tengo que colocar el tipo de argumento que devuelve la funcion, que no se que poner. Vos desde donde lo ejecutas desde pgadmin o desde la consola de postgresql?

Hola Romina,

Sí, lo acabo de probar en la interfaz gráfica de PGAdminIII y no me dio ningún error. Te paso la captura de pantalla completa, para que compares y veas si te falta algo.

Saludos,
Fernando


UNJU.png

UNJU.png

El tipo de dato que devuelve la funcion es de tipo trigger, ese tipo ya existe en postgres.
Será problema de donde estas creando la funcion? Los objetos de la base estan en el esquema public o en otro esquema?
Si es otro esquema, fijate de setear la variable search_path con el nombre del esquema en la opcion Properties de la base de datos.

Buen dia:
gracias por sus respuestas, ya pude crear la tabla y el trigger asociado. Y el error es que en vez de ejecutarlo desde la opcion sql, trataba de crear en el esquema cada componente por separado.
Saludos.