Re: Random-looking primary keys in the range 100000..999999

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Kynn Jones <kynnjo@gmail.com>
Cc: hubert depesz lubaczewski <depesz@gmail.com>, pgsql-general General <pgsql-general@postgresql.org>
Date: 2014-07-04T14:59:33Z
Lists: pgsql-general
Kynn Jones <kynnjo@gmail.com> writes:
> The requirements I've been given for the keys is that they be numeric,
> reasonably easy to type (hence, no 40-digit keys), never beginning with 0,
> and carrying no additional information content (or even suggesting it).

Why not just

(random()*899999)::int + 100000

This is unlikely to be cryptographically secure, but you didn't say you
needed that.  You will need to check for collisions, but that seems like
something you really ought to do anyway.

			regards, tom lane