Código SQL:
Ver original
CREATE OR REPLACE FUNCTION borrarnomina(id_nomina INTEGER) RETURNS INTEGER AS $$ DECLARE tempo INTEGER; id alias FOR $1; BEGIN RAISE NOTICE 'id(%)', id; DELETE FROM ONLY conceptodetalle WHERE id_nomina=id; --execute cadena into tempo; --if (FOUND) -- then -- delete from only detallenomina where id_nomina=$1; -- execute cadena into tempo; --if (FOUND) -- then -- delete from only nomina where id_nomina=$1; --execute cadena into tempo; --if (FOUND) --tempo -- then -- commit; -- return 1; --else -- rollback; --return 0; -- end if; --else -- rollback; -- return 0; --end if; --else -- rollback; --return 0; --end if; RETURN 1; END; $$ LANGUAGE 'plpgsql';
destaco que las tablas estan relacionados de la siguiente manera
nomina clave primaria: id_nomina
detallenomina clave primaria: (id_nomina , nronom); fk: id_nomina
concepto detalle clave primaria: (id_nomina, nronom, ccon); fk: (id_nomina,nronom)
no le veo ni pies ni cabeza. el raise notice lo coloque para saber si el parametro de entrada lo estaba tomando bien. alguna ayuda please..!!
edit: quiero agregar que si el delete lo ejecuto como una sentencia sql comun, el delete se ejecuta perfectamente, solo borrando los registros cuyo id_nomina sea el especificado.