HOLA A TODOS!!!
Hice lo siguiente, CREATE OR REPLACE FUNCTION educaciondistancia.valida_evaluaciones_alumno() RETURNS trigger AS $BODY$ DECLARE id record ; BEGIN PERFORM * FROM educaciondistancia.evaluaciones_alumno_maestria WHERE evaluacionmaestria = OLD.id_evaluacion; IF FOUND THEN raise exception 'El esquema no se puede borrar ya que tiene evaluaciones del alumno'; END IF; RETURN OLD; END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100; ALTER FUNCTION educaciondistancia.valida_evaluaciones_alumno() OWNER TO postgres; si hace mi validacion correcta , solo que si no encuentra evaluacionmaestria en la otra tabla, no borra el registro. es porque le estoy poniendo : RETURN OLD; ? En un inicio propuse agregar una foranea sin embargo desarrollo no quiere mover el codigo por el momento. ________________________________ De: Hellmuth Vargas <hiv...@gmail.com> Enviado: jueves, 5 de octubre de 2017 14:25:45 Para: Carlos Perez Cc: Maria Antonieta Ramirez; FORO POSTGRES Asunto: Re: AYUDA CON TRIGGER Hola Lista una pregunta porque no implementa un constraint Foreign Keys? https://www.postgresql.org/docs/9.6/static/ddl-constraints.html El 5 de octubre de 2017, 14:18, Carlos Perez<carlos.pe...@syswarp.com.ar<mailto:carlos.pe...@syswarp.com.ar>> escribió: Hola. Entiendo que por alguna razon no pones integridad referencial con una constraint debe ser por alguna razon en particular.... sino te recomendaria que uses eso directamente para no complicarte Te pongo un ejemplo donde primero haces una funcion para el trigger donde podrias eventualmente manejar el evento (en tu caso DELETE. ... Bueno, en fin ,espero que te sirva. CREATE OR REPLACE FUNCTION fn_movcli_saldo_cero() RETURNS trigger AS $BODY$ DECLARE vSQL_ERROR VARCHAR(300):='OK' ; BEGIN IF ( TG_OP = 'UPDATE' OR TG_OP = 'INSERT')THEN IF (((NEW.saldo) < 0.01 AND (NEW.saldo) > 0) OR ((NEW.saldo) < 0 AND (NEW.saldo) > -0.01)) THEN UPDATE clientesmovcli SET saldo = 0 WHERE nrointerno = NEW.nrointerno; END IF; END IF; RETURN NEW; -- EXCEPTION WHEN OTHERS THEN -- RAISE EXCEPTION '%', SQLERROR; -- RETURN OLD; END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100; ALTER FUNCTION fn_movcli_saldo_cero() OWNER TO postgres; CREATE TRIGGER tr_movcli_saldo_cero AFTER INSERT OR UPDATE ON clientesmovcli FOR EACH ROW EXECUTE PROCEDURE fn_movcli_saldo_cero(E'\\\\x5c7800'); El 5 de octubre de 2017, 16:13, Maria Antonieta Ramirez <marami...@ulsaneza.edu.mx<mailto:marami...@ulsaneza.edu.mx>> escribió: hola buenas tardes a todos! voy a hacer un trigger que valide si el id que quiere borrar el usuario no existe en otra tabla, si existe que no lo deje borrar y si no existe que si lo deje borrar. No se como haber la validacion de la busqueda en la otra tabla, no se mucho de triggers apenas estoy en eso. sis alguien puede orietarme se los agradecere mucho. gracias. -- Carlos Enrique Perez Direccion Syswarp SRL [X] www.syswarp.com<http://www.syswarp.com> [X] -- Cordialmente, Ing. Hellmuth I. Vargas S. Esp. Telemática y Negocios por Internet Oracle Database 10g Administrator Certified Associate EnterpriseDB Certified PostgreSQL 9.3 Associate