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...@gmail.com
Date: Sat, 7 Apr 2012 22:55:00 -0500
Subject: Re: [pgsql-es-ayuda] Generar numeros aleatorios enteros de 4 digitos
To: venec...@hotmail.com
CC: pgsql-es-ayuda@postgresql.org



On 23 March 2012 14:54, maria teresa tarquino chavez <venec...@hotmail.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...@gmail.com - morello...@chile.com


Google IM: morello...@gmail.com
Live IM: morello...@hotmail.com


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



                                          

Responder a