From: | Rob Sargent <robjsargent(at)gmail(dot)com> |
---|---|
To: | |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Constraint: string length must be 32 chars |
Date: | 2010-10-16 21:08:03 |
Message-ID: | 4CBA1433.4040008@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Merlin Moncure wrote:
> On Sat, Oct 16, 2010 at 12:15 PM, Alexander Farber
> <alexander(dot)farber(at)gmail(dot)com> wrote:
>
>> Hello,
>>
>> I'm trying to create a table, where md5 strings will serve as primary keys.
>> So I'd like to add a constraing that the key length should be 32 chars long
>> (and contain [a-fA-F0-9] only):
>>
>
> why don't you use the bytea type, and cut the key size down 50%? You
> can always format it going out the door if you want it displayed hex.
> Besides being faster, you get to skip the 'is hex' regex.
>
> create table foo(id bytea check(length(id) = 16));
> insert into foo values (decode(md5('a'), 'hex')); -- if not using pgcrypto
> insert into foo values (digest('b', 'md5')); -- if using pgcrypto (preferred)
>
> select encode(id, 'hex') from foo;
>
> merlin
>
>
Why not the support uuid type instead. Aren't md5s only as unique as
the source? i.e. The same value hashed results in the same md5, no?
From | Date | Subject | |
---|---|---|---|
Next Message | Alexander Farber | 2010-10-16 22:29:46 | Re: Constraint: string length must be 32 chars |
Previous Message | Merlin Moncure | 2010-10-16 19:23:44 | Re: Constraint: string length must be 32 chars |