Lists: | pgsql-es-ayuda |
---|
From: | "Carlos Alberto Cianci" <cacianci(at)yahoo(dot)com(dot)ar> |
---|---|
To: | "Lista Postgres" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Consulta sobre OID |
Date: | 2006-08-01 13:37:26 |
Message-ID: | 000601c6b56f$a2085450$0900a8c0@carlos |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Hola:
Quisiera saber si alguien puede aclararme una duda. Cuando ejecuto el comando GET DIAGNOSTICS variable = RESULT_OID;
obtengo el OID generado por el último INSERT en la sesión del usuario o de toda la base de datos????
Gracias
Carlos Cianci
From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Carlos Alberto Cianci <cacianci(at)yahoo(dot)com(dot)ar> |
Cc: | Lista Postgres <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Consulta sobre OID |
Date: | 2006-08-01 13:57:40 |
Message-ID: | [email protected] |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Carlos Alberto Cianci escribió:
> Hola:
> Quisiera saber si alguien puede aclararme una duda. Cuando ejecuto el comando GET DIAGNOSTICS variable = RESULT_OID;
> obtengo el OID generado por el último INSERT en la sesión del usuario o de toda la base de datos????
No tengo idea, pero te recomiendo no usar eso. Si quieres un
identificador numerico unico, usa un campo SERIAL.
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
From: | "Carlos Alberto Cianci" <cacianci(at)yahoo(dot)com(dot)ar> |
---|---|
To: | "Alvaro Herrera" <alvherre(at)commandprompt(dot)com> |
Cc: | "Lista Postgres" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Consulta sobre OID |
Date: | 2006-08-01 15:24:22 |
Message-ID: | 000801c6b57e$927fe5c0$0900a8c0@carlos |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Hola Alvaro,
Estoy usando un campo Serial como identificador unico. Tengo una funcion que
realiza la insercion y me retorna el identificador serial asignado. Lo hago
de la siguiente manera:
CREATE OR REPLACE FUNCTION ventas.insertcolores(_nombre "varchar") RETURNS
int4 AS
$BODY$declare
ncodigo integer;
ult_oid integer;
begin
insert into ventas.colores (nombre) values (_nombre);
get diagnostics ult_oid=RESULT_OID;
select idcolor into ncodigo from ventas.colores where oid=ult_oid;
return ncodigo;
end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
La tabla colores tiene la siguiente estructura:
idcolor serial,
nombre varchar(50)
El OID lo utilizo para poder ubicar la fila y obtener el serial asignado.
Hay otra forma de hacerlo?
Gracias
Carlos Cianci
----- Original Message -----
From: "Alvaro Herrera" <alvherre(at)commandprompt(dot)com>
To: "Carlos Alberto Cianci" <cacianci(at)yahoo(dot)com(dot)ar>
Cc: "Lista Postgres" <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Tuesday, August 01, 2006 10:57 AM
Subject: Re: [pgsql-es-ayuda] Consulta sobre OID
> Carlos Alberto Cianci escribió:
>> Hola:
>> Quisiera saber si alguien puede aclararme una duda. Cuando ejecuto el
>> comando GET DIAGNOSTICS variable = RESULT_OID;
>> obtengo el OID generado por el último INSERT en la sesión del usuario o
>> de toda la base de datos????
>
> No tengo idea, pero te recomiendo no usar eso. Si quieres un
> identificador numerico unico, usa un campo SERIAL.
>
> --
> Alvaro Herrera
> http://www.CommandPrompt.com/
> PostgreSQL Replication, Consulting, Custom Development, 24x7 support
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 10: visita nuestro canal de IRC #postgresql-es en irc.freenode.net
>
> __________ Información de NOD32, revisión 1.1685 (20060731) __________
>
> Este mensaje ha sido analizado con NOD32 antivirus system
> http://www.nod32.com
>
>
__________________________________________________
Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
¡Probalo ya!
http://www.yahoo.com.ar/respuestas
From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Carlos Alberto Cianci <cacianci(at)yahoo(dot)com(dot)ar> |
Cc: | Lista Postgres <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Consulta sobre OID |
Date: | 2006-08-01 17:25:48 |
Message-ID: | [email protected] |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Carlos Alberto Cianci escribió:
> CREATE OR REPLACE FUNCTION ventas.insertcolores(_nombre "varchar") RETURNS
> int4 AS
> $BODY$declare
> ncodigo integer;
> ult_oid integer;
> begin
> insert into ventas.colores (nombre) values (_nombre);
> get diagnostics ult_oid=RESULT_OID;
> select idcolor into ncodigo from ventas.colores where oid=ult_oid;
> return ncodigo;
> end;
> $BODY$
> LANGUAGE 'plpgsql' VOLATILE;
Hum, eso es bastante ineficiente. Te sugiero que luego del INSERT,
hagas un SELECT nextval('colores_idcolor_seq') para obtener el valor
insertado.
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
From: | "Carlos Alberto Cianci" <cacianci(at)yahoo(dot)com(dot)ar> |
---|---|
To: | "Alvaro Herrera" <alvherre(at)commandprompt(dot)com> |
Cc: | "Lista Postgres" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Consulta sobre OID |
Date: | 2006-08-01 20:38:17 |
Message-ID: | 002101c6b5aa$6d3addc0$0900a8c0@carlos |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Alvaro,
Por que es ineficiente lo que estoy haciendo??? Hace poco que trabajo con
Postgres y quizas este haciendo algo mal, por eso me gustaría que me
expliques el porque.
Otra cosa: si ejecuto SELECT nextval('colores_idcolor_seq') luego del INSERT
no voy a obtener el valor del insert, sino el siguiente. Estoy equivocado???
Carlos Cianci
----- Original Message -----
From: "Alvaro Herrera" <alvherre(at)commandprompt(dot)com>
To: "Carlos Alberto Cianci" <cacianci(at)yahoo(dot)com(dot)ar>
Cc: "Lista Postgres" <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Tuesday, August 01, 2006 2:25 PM
Subject: Re: [pgsql-es-ayuda] Consulta sobre OID
> Carlos Alberto Cianci escribió:
>
>> CREATE OR REPLACE FUNCTION ventas.insertcolores(_nombre "varchar")
>> RETURNS
>> int4 AS
>> $BODY$declare
>> ncodigo integer;
>> ult_oid integer;
>> begin
>> insert into ventas.colores (nombre) values (_nombre);
>> get diagnostics ult_oid=RESULT_OID;
>> select idcolor into ncodigo from ventas.colores where oid=ult_oid;
>> return ncodigo;
>> end;
>> $BODY$
>> LANGUAGE 'plpgsql' VOLATILE;
>
> Hum, eso es bastante ineficiente. Te sugiero que luego del INSERT,
> hagas un SELECT nextval('colores_idcolor_seq') para obtener el valor
> insertado.
>
>
> --
> Alvaro Herrera
> http://www.CommandPrompt.com/
> PostgreSQL Replication, Consulting, Custom Development, 24x7 support
>
> __________ Información de NOD32, revisión 1.1685 (20060731) __________
>
> Este mensaje ha sido analizado con NOD32 antivirus system
> http://www.nod32.com
>
>
__________________________________________________
Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
¡Probalo ya!
http://www.yahoo.com.ar/respuestas
From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Carlos Alberto Cianci <cacianci(at)yahoo(dot)com(dot)ar> |
Cc: | Lista Postgres <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Consulta sobre OID |
Date: | 2006-08-01 20:43:21 |
Message-ID: | [email protected] |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Carlos Alberto Cianci escribió:
> Alvaro,
> Por que es ineficiente lo que estoy haciendo??? Hace poco que trabajo con
> Postgres y quizas este haciendo algo mal, por eso me gustaría que me
> expliques el porque.
Es ineficiente porque primero debes recorrer toda la tabla en busca del
OID que se acaba de ingresar. La busqueda no es instantanea, debe hacer
un recorrido secuencial de la tabla. (Ademas, el OID podria estar
repetido si es que el contador "da la vuelta". De acuerdo, es un
problema de baja probabilidad, pero _es_ un problema).
> Otra cosa: si ejecuto SELECT nextval('colores_idcolor_seq') luego del
> INSERT no voy a obtener el valor del insert, sino el siguiente. Estoy
> equivocado???
Tienes razon. Era "currval()", no nextval(). La culpa la tiene todo el
resto de la lista que vio el error y no lo corrigio ;-)
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
From: | "Roger Villavicencio" <roger(at)decaos(dot)com> |
---|---|
To: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | CREAR script programado |
Date: | 2006-08-01 21:19:20 |
Message-ID: | [email protected] |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Buenos Días
Deseo esto programar para q se haga toda las noches unos insert de unas
tablas
Pero no se por donde empezar si alguien tiene algunas webs se los
agradecería.
From: | "Carlos Alberto Cianci" <cacianci(at)yahoo(dot)com(dot)ar> |
---|---|
To: | "Alvaro Herrera" <alvherre(at)commandprompt(dot)com> |
Cc: | "Lista Postgres" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Consulta sobre OID |
Date: | 2006-08-01 21:33:58 |
Message-ID: | 004701c6b5b2$346813c0$0900a8c0@carlos |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
OK, gracias por la información.
Carlos Cianci
----- Original Message -----
From: "Alvaro Herrera" <alvherre(at)commandprompt(dot)com>
To: "Carlos Alberto Cianci" <cacianci(at)yahoo(dot)com(dot)ar>
Cc: "Lista Postgres" <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Tuesday, August 01, 2006 5:43 PM
Subject: Re: [pgsql-es-ayuda] Consulta sobre OID
> Carlos Alberto Cianci escribió:
>> Alvaro,
>> Por que es ineficiente lo que estoy haciendo??? Hace poco que trabajo con
>> Postgres y quizas este haciendo algo mal, por eso me gustaría que me
>> expliques el porque.
>
> Es ineficiente porque primero debes recorrer toda la tabla en busca del
> OID que se acaba de ingresar. La busqueda no es instantanea, debe hacer
> un recorrido secuencial de la tabla. (Ademas, el OID podria estar
> repetido si es que el contador "da la vuelta". De acuerdo, es un
> problema de baja probabilidad, pero _es_ un problema).
>
>> Otra cosa: si ejecuto SELECT nextval('colores_idcolor_seq') luego del
>> INSERT no voy a obtener el valor del insert, sino el siguiente. Estoy
>> equivocado???
>
> Tienes razon. Era "currval()", no nextval(). La culpa la tiene todo el
> resto de la lista que vio el error y no lo corrigio ;-)
>
> --
> Alvaro Herrera
> http://www.CommandPrompt.com/
> PostgreSQL Replication, Consulting, Custom Development, 24x7 support
>
> __________ Información de NOD32, revisión 1.1685 (20060731) __________
>
> Este mensaje ha sido analizado con NOD32 antivirus system
> http://www.nod32.com
>
>
__________________________________________________
Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
¡Probalo ya!
http://www.yahoo.com.ar/respuestas
From: | "Juan Pablo Romero Bernal" <jromerobernal(at)gmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: CREAR script programado |
Date: | 2006-08-01 22:45:48 |
Message-ID: | [email protected] |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Saludos,
On 8/2/06, Roger Villavicencio <roger(at)decaos(dot)com> wrote:
> Buenos Días
> Deseo esto programar para q se haga toda las noches unos insert de unas
> tablas
>
> Pero no se por donde empezar si alguien tiene algunas webs se los
> agradecería.
Bueno, si estas en GNU/Linux, puedes utilizar cron[1] para programar
la ejecución del script sql. La idea es hacer el script en puro sql o
usando otro lenguaje como PHP o Python.
Saludos y que Dios nos bendiga!!1
--
Juan Pablo Romero Bernal
Grupo Linux Universidad Distrital
Canal IRC (IRC Channel)
#glud (irc.freenode.org)
Visita el sitio web de Software Libre en Colombia:
http://www.el-directorio.org
From: | "Jaime Casanova" <systemguards(at)gmail(dot)com> |
---|---|
To: | "Carlos Alberto Cianci" <cacianci(at)yahoo(dot)com(dot)ar>, "Lista Postgres" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Consulta sobre OID |
Date: | 2006-08-03 05:43:32 |
Message-ID: | [email protected] |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
> > Otra cosa: si ejecuto SELECT nextval('colores_idcolor_seq') luego del
> > INSERT no voy a obtener el valor del insert, sino el siguiente. Estoy
> > equivocado???
>
> Tienes razon. Era "currval()", no nextval(). La culpa la tiene todo el
> resto de la lista que vio el error y no lo corrigio ;-)
>
sorry, es culpa de mi jefa que me tiene bloqueada la url del correo de
gmail (la que tengo registrada en la lista) para que no lo revise en
la oficina...
no se porque tiene la idea de que no haria mi trabajo por leer la lista... ;)
--
Atentamente,
Jaime Casanova
"Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs and the universe trying
to produce bigger and better idiots.
So far, the universe is winning."
Richard Cook
From: | "Pablo Siciliano" <psiciliano(at)puentenet(dot)com> |
---|---|
To: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: CREAR script programado |
Date: | 2006-08-03 16:49:41 |
Message-ID: | [email protected] |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Si no, hacer las consultas ejecutar los procedures con echo
"mis_comandos_sql"|psql midb con los permisos apropiados también funciona.
Eso mismo puede ir en el cron.
En Windows, se puede poner alguna aplicación (Puede ser en administrador de
tareas, o cualquiera mas amigable. A mi me gusta el System Scheduler de
www.splinterware.com)
Saludos.
Pablo.
----- Original Message -----
From: "Juan Pablo Romero Bernal" <jromerobernal(at)gmail(dot)com>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Tuesday, August 01, 2006 7:45 PM
Subject: Re: [pgsql-es-ayuda] CREAR script programado
Saludos,
On 8/2/06, Roger Villavicencio <roger(at)decaos(dot)com> wrote:
> Buenos Días
> Deseo esto programar para q se haga toda las noches unos insert de unas
> tablas
>
> Pero no se por donde empezar si alguien tiene algunas webs se los
> agradecería.
Bueno, si estas en GNU/Linux, puedes utilizar cron[1] para programar
la ejecución del script sql. La idea es hacer el script en puro sql o
usando otro lenguaje como PHP o Python.
Saludos y que Dios nos bendiga!!1
--
Juan Pablo Romero Bernal
Grupo Linux Universidad Distrital
Canal IRC (IRC Channel)
#glud (irc.freenode.org)
Visita el sitio web de Software Libre en Colombia:
http://www.el-directorio.org
---------------------------(fin del mensaje)---------------------------
TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
http://archives.postgresql.org/pgsql-es-ayuda
--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.10.5/405 - Release Date: 2006/08/01