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