¿No es posible que una función ejecutada por un trigger devuelva un valor?.

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.

Responses

Browse pgsql-es-ayuda by date

  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