Re: ayuda con funcion sql para obtener registros procesados

From: "Alejandro Gasca" <galejadror(at)gmail(dot)com>
To: "Agustin Casiva" <casivaagustin(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: ayuda con funcion sql para obtener registros procesados
Date: 2007-07-06 17:30:17
Message-ID: 20d60a6c0707061030q1877e852gb0806b6f24d70d29@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El día 6/07/07, Agustin Casiva <casivaagustin(at)gmail(dot)com> escribió:
>
> On 7/5/07, Alejandro Gasca <galejadror(at)gmail(dot)com> wrote:
> > Saludos,
> >
> > Estoy haciendo un procedimento en sql. El procedimiento hace un insert,
> y me
> > gustaria saber si hay alguna manera de saber cuantos registros proceso,
> algo
> > simiar al GET DIAGNOSTICS ... ROW_COUNT de plpgsql.
> >
> > Actualmente estoy intentando hacer algo parecido a lo siguiente para
> > intentar
> > obtener la cantidad de registros, pero solo obtengo errores :(
> >
> > select count(*) from (
> > insert into foo ...
> > returning *
> > ) as consulta;
> >
>
> A ver, si no me equivoco el insert siempre procesa un registro !?
> Por que queres ver cuantos proceso un insert?, si siempre procesa uno
> solo en caso de ser
> correcta la operación.
>
Insert puede insertar varios registros, por ejemplo:
INSERT INTO fu (campo1, campo2)
SELECT (campo1, campo2) from fu2;

te inserta tantos campos como tenga fu2 (y los indices y demas condiciones
sobre la tabla lo permitan)
De hecho, varios frontends interceptan el mensaje:
"Query returned successfully: 28 rows affected, 47 ms execution time."

Mi primer pregunta es como se obtiene ese dato, los "rows affected" desde
sql.

Ahora, Si quieres ver que se inserto, le puedes poner:

INSERT INTO fu (campo1, campo2)
SELECT (campo1, campo2) from fu2
RETURNING *

Cuando se ejecuta esa función, regresa los registros que (realmente) se
insertaron... como dice en la documentacion...

mi segunda pregunta es: ¿Como hago uso de esa salida en una funcion sql?
Como la salida se obtiene de un INSERT, la funcion se niega a reconocerla
como
un conjunto de registros.

Alejandro.

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Javier Bermúdez Tito 2007-07-06 20:31:26 RE: ayuda con funcion sql para obtener registros procesados
Previous Message Calabaza Calabaza 2007-07-06 16:58:37 Re: DBDesigner con postgresql