Re: Generar numeros aleatorios enteros de 4 digitos

Lists: pgsql-es-ayuda
From: maria teresa tarquino chavez <veneca30(at)hotmail(dot)com>
To: FORO POSTGRES <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Generar numeros aleatorios enteros de 4 digitos
Date: 2012-03-23 19:54:36
Message-ID: [email protected]
Views: Whole Thread | Raw Message | Download mbox | Resend email
Lists: pgsql-es-ayuda

Buenas tardes lista estoy utilizando la versión 8.4 de postgresql, necesito saber como generar números enteros aleatorios de 4 dígitos para llenar una columna no se pueden repetir deben ser único como una clave, he encontrado funciones que me generan códigos pero tienen letras necesito que solo sea números enteros, gracias de antemano por su ayuda.


From: Rodrigo Gonzalez <listas(at)estrads(dot)com(dot)ar>
To: maria teresa tarquino chavez <veneca30(at)hotmail(dot)com>
Cc: FORO POSTGRES <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Generar numeros aleatorios enteros de 4 digitos
Date: 2012-03-23 20:30:59
Message-ID: [email protected]
Views: Whole Thread | Raw Message | Download mbox | Resend email
Lists: pgsql-es-ayuda

On Fri, 23 Mar 2012 19:54:36 +0000
maria teresa tarquino chavez <veneca30(at)hotmail(dot)com> wrote:

>
>
> Buenas tardes lista estoy utilizando la versión 8.4 de postgresql,
> necesito saber como generar números enteros aleatorios de 4 dígitos
> para llenar una columna no se pueden repetir deben ser único como una
> clave, he encontrado funciones que me generan códigos pero tienen
> letras necesito que solo sea números enteros, gracias de antemano por
> su ayuda.

Bueno, para generar numeros aleatorios de 4 digitos podes hacer algo asi

SELECT trunc(random() * 9999 + 1000) FROM generate_series(1,10);

Esto genera 10 numeros

Basicamente es trunc(random() * <maximo> + <minimo>)

Despues tendras que ver que no se repitan al ingresarlos en tu tabla...

Saludos

Rodrigo


From: "Marco Orellana O(dot)" <morello(dot)cl(at)gmail(dot)com>
To: maria teresa tarquino chavez <veneca30(at)hotmail(dot)com>
Cc: FORO POSTGRES <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Generar numeros aleatorios enteros de 4 digitos
Date: 2012-04-08 03:55:00
Message-ID: CAE8hFqUYC5U5nqLtisc8df7nqEqr9wwW+brgARVgUeZ7bLfRqw@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Lists: pgsql-es-ayuda

On 23 March 2012 14:54, maria teresa tarquino chavez
<veneca30(at)hotmail(dot)com>wrote:

>
> Buenas tardes lista estoy utilizando la versión 8.4 de postgresql,
> necesito saber como generar números enteros aleatorios de 4 dígitos para
> llenar una columna no se pueden repetir deben ser único como una clave, he
> encontrado funciones que me generan códigos pero tienen letras necesito que
> solo sea números enteros, gracias de antemano por su ayuda.
>

Ultiliza random() y vas acomodando al largo maximo. Debes almacenar en una
tabla donde debes revisar que no se haya generado antes, si existe en la
tabla, vuelves a generar el random. Como tips en la tabla agrega la fecha
de creacion, ya q cada vez sera mas lento generar un unico, ya que la
posibilidad de repetirse es mayor cuando la table este casi llena, si ha
pasado bastante tiempo, habria que eliminar los mas antiguos.

Saludos y suerte con eso!

--
Marco A. Orellana Olivares
Móvil: +(57) 3007878494
Email: morello(dot)cl(at)gmail(dot)com - morello(dot)cl(at)chile(dot)com
Google IM: morello(dot)cl(at)gmail(dot)com
Live IM: morello_cl(at)hotmail(dot)com
Skype: morello_cl
Blog: http://morellana.wordpress.com | Twitter:
http://www.twitter.com/morello_cl


From: Edwin Quijada <listas_quijada(at)hotmail(dot)com>
To: <morello(dot)cl(at)gmail(dot)com>, <veneca30(at)hotmail(dot)com>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Generar numeros aleatorios enteros de 4 digitos
Date: 2012-04-08 17:13:44
Message-ID: [email protected]
Views: Whole Thread | Raw Message | Download mbox | Resend email
Lists: pgsql-es-ayuda

Sabes que solo puedes generar 9999 y que por ende se van a repetir ?Lo mas simple es generar un random pero a medida que vaya pasando el tiempo van a empezar a salir mas repetidos entonces puedes hacer los siguiente genera los 9999 que tienes en una tabla y cada vez que "generes" uno nuevo solo tendras que hacer un select con ramdom , si quieres, y lo borras de la tabla a medida que pase el tiempo se iran acabando pero siempre tendras un numero en un solo intento y estar seguro que no es repetido.
No se si 9999 son suficientes pero ahi tienes una solucion
From: morello(dot)cl(at)gmail(dot)com
Date: Sat, 7 Apr 2012 22:55:00 -0500
Subject: Re: [pgsql-es-ayuda] Generar numeros aleatorios enteros de 4 digitos
To: veneca30(at)hotmail(dot)com
CC: pgsql-es-ayuda(at)postgresql(dot)org

On 23 March 2012 14:54, maria teresa tarquino chavez <veneca30(at)hotmail(dot)com> wrote:

Buenas tardes lista estoy utilizando la versión 8.4 de postgresql, necesito saber como generar números enteros aleatorios de 4 dígitos para llenar una columna no se pueden repetir deben ser único como una clave, he encontrado funciones que me generan códigos pero tienen letras necesito que solo sea números enteros, gracias de antemano por su ayuda.

Ultiliza random() y vas acomodando al largo maximo. Debes almacenar en una tabla donde debes revisar que no se haya generado antes, si existe en la tabla, vuelves a generar el random. Como tips en la tabla agrega la fecha de creacion, ya q cada vez sera mas lento generar un unico, ya que la posibilidad de repetirse es mayor cuando la table este casi llena, si ha pasado bastante tiempo, habria que eliminar los mas antiguos.

Saludos y suerte con eso!
--
Marco A. Orellana Olivares
Móvil: +(57) 3007878494Email: morello(dot)cl(at)gmail(dot)com - morello(dot)cl(at)chile(dot)com

Google IM: morello(dot)cl(at)gmail(dot)com
Live IM: morello_cl(at)hotmail(dot)com

Skype: morello_cl
Blog: http://morellana.wordpress.com | Twitter: http://www.twitter.com/morello_cl