Sebastián Villalba escribió: > On Wed, 24 Feb 2010 17:27:57 -0300, Alvaro Herrera wrote > > Fernando Hevia escribió: > > > > > De ninguna manera podés garantizar que ese mecanismo te de identificadores > > > únicos. > > > ¿Porqué no usas un serial? > > > > Si quieres identificadores únicos que no sigan un orden correlativo > > quizás te sirva esto: > > > > http://wiki.postgresql.org/wiki/Pseudo_encrypt > > Efectivamente necesito algo así, que no siga patrón correlativo o determinado. > El único requisito es que la longitud debe ser de 7. Por un antojo el > "substring(md5(CURRENT_TIME::time)from 7 for 7)" lo hago a partir de la > séptima posición, porque se me ocurrió hacerlo así, pero sin contar con ningún > fundamento teórico.
Supongo que lo que puedes hacer si te interesa asegurar unicidad es convertir el número de la función de Verite en un string de 7 caracteres. Claro que tendrías que modificarla, porque con una cadena de largo 7 en hex tienes a lo más 268.435.456 cadenas distintas (16^7), pero la función de Verite retorna 2^32 valores distintos (4 mil millones y fracción) Lo otro que podrías hacer es usar 24 dígitos en vez de 16, con lo que tienes espacio para 4500 millones de valores; cubrirías todo el espacio de Verite y un poco más. Ahí el único trabajo que tendrías sería inventar cómo mapear un número de 32 bits a un string ... -- Alvaro Herrera Vendo parcela en Valdivia: http://valdivia.vivastreet.cl/loteos-lotes+valdivia/parcela-en-cabo-blanco--valdivia/19288372 "Sallah, I said NO camels! That's FIVE camels; can't you count?" (Indiana Jones) -- TIP 5: ¿Has leído nuestro extenso FAQ? http://www.postgresql.org/docs/faqs.FAQ.html