Skip site navigation (1) Skip section navigation (2)

¿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 (view raw or flat)
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

pgsql-es-ayuda by date

Next:From: Patricio Cifuentes IthalDate: 2007-12-20 17:06:10
Subject: RE: ayuda con un layer en postgis
Previous:From: sandra litumaDate: 2007-12-20 14:49:10
Subject: ayuda con un layer en postgis

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group