From: | "Pablo Braulio" <brulics(at)gmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | ¿No es posible que una función ejecutada por un trigger devuelva un valor?. |
Date: | 2007-12-20 16:30:30 |
Message-ID: | 183801c30712200830y22309effu5b53619abb14e84c@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola todos.
Tengo una duda respecto a la diferencia entre la ejecución manual de
una función y la que se ejecuta mediante un trigger, que quisiera
comentar.
Tengo la siguiente función:
create or replace function seqestudio() returns integer as $$
declare
valor integer;
begin
select currval('public.estudio_id_seq') into valor;
return valor;
end;
$$ language plpgsql;
Si ejecuto manualmente esta función (select seqestudio();), esta me
devuelve el valor actual de la secuencia de la tabla, pero quisiera
que esta función se ejecutara automáticamente al realizar un insert a
dicha tabla.
Para ello, llamo a esta función desde otra función que devuelve un
trigger que se ejecuta tras un insert.
create or replace function seqestudio() returns trigger as $$
begin
select seqestudio();
end;
$$ language plpgsql;
create trigger seqestudio after insert on estudio for each row execute
procedure seqestudio();
El caso es que tras el insert, este no devuelve ningún valor.
¿No se puede hacer esto?.
Saludos y gracias por vuestra paciencia.
--
Saludos.
Pablo.
From | Date | Subject | |
---|---|---|---|
Next Message | Patricio Cifuentes Ithal | 2007-12-20 17:06:10 | RE: ayuda con un layer en postgis |
Previous Message | sandra lituma | 2007-12-20 14:49:10 | ayuda con un layer en postgis |