Hi, On Friday 29 January 2010 09.20:33 Joe Kramer wrote: > I need to generate unique id which is not guessable unlike > serial(integer) type. I need an id in format like md5 hash of random > number. > On top of that I need this id to be unique across multiple tables. Have a look at http://www.postgresql.org/docs/8.3/static/uuid-ossp.html The usual approach is that (given a sensible random generator[1]) uuid are assumed to be unique[2]. So you don't need to check because the probability of collisions is so small that for practical purposes you can just ignore it. (If your engineer's mind balks at this, consider that you're trusting this already when you use digital cryptography / signatures, for example https certificates.) I haven't looked at this module myself, but from the experience with generating gpg keys on an appliance: if you need lots of randomness, the geneation of random numbers might be your bottleneck. OTOH, our platform didn't have disks and usually there was no network traffic while your average db server has both, and on many systems there is a hardware random generator, so this might not be an issue. cheers -- vbi [1] like, for example: http://www.dilbert.com/strips/comic/2001-10-25/ [2] you'll want v4 uuids -- Linus has opinions, I have opinions, everybody else has opinions, and the only consistency here is that most of us are wrong most of the time. -- Andrew Morton, OLS 2004
Attachment:
signature.asc
Description: This is a digitally signed message part.