RE: [pgsql-es-ayuda] Identificador único con md5()

From: "Fernando Hevia" <fhevia(at)ip-tel(dot)com(dot)ar>
To: 'Sebastián Villalba' <sebastian(at)fcm(dot)unc(dot)edu(dot)ar>, "'Lista Ayuda Pgsql'" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: [pgsql-es-ayuda] Identificador único con md5()
Date: 2010-02-24 20:17:20
Message-ID: 405495027717453C8C08E26564346A94@iptel.com.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

> -----Mensaje original-----
> De: Sebastián Villalba
>
> Hola a todos. Estoy intentando generar un identificador único
> y se me ocurrió utilizar md5() combinado con
> "CURRENT_TIMESTAMP" (o now()).
>
> En Postgres 8.2 anda perfecto:
>
> postgres=# SELECT upper(substring(md5(CURRENT_TIME::time)from
> 7 for 7))AS mi_identificador ; mi_identificador
> ------------------
> CC8670A
> (1 fila)
>
> postgres=# SELECT upper(substring(md5(CURRENT_TIME::time)from
> 7 for 7))AS mi_identificador ; mi_identificador
> ------------------
> 9514C4D
> (1 fila)
>
> Pero en 8.4:
>
> postgres=# SELECT upper(substring(md5(CURRENT_TIME::time)from
> 7 for 7))AS mi_identificador ;
> ERROR: no existe la función md5(time without time zone)
> LÍNEA 1: SELECT upper(substring(md5(CURRENT_TIME::time)from 7
> for 7))...
> ^
> SUGERENCIA: Ninguna función coincide en el nombre y tipos de
> argumentos.
> Puede desear agregar conversión explícita de tipos.
>
> ¿Hay forma para que el md5 tome como entrada la salida del
> CURRENT_TIME como lo hacía en la versión 8.2?
>
> Muchas gracias y un gran saludo a todos!
>

De ninguna manera podés garantizar que ese mecanismo te de identificadores
únicos.
¿Porqué no usas un serial?

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Cesar Erices 2010-02-24 20:27:39 Re: Lanzamiento de access2pgsql 1.0.1
Previous Message Alvaro Herrera 2010-02-24 20:06:45 Re: B-Tree o HASH