From: | Alfred Perlstein <bright(at)wintelcom(dot)net> |
---|---|
To: | Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com> |
Cc: | Shaw Terwilliger <sterwill(at)sourcegear(dot)com>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: Case Insensitive CHECK CONSTRAINTs |
Date: | 2001-03-14 19:56:32 |
Message-ID: | 20010314115632.K29888@fw.wintelcom.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
* Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com> [010314 11:52] wrote:
>
> I'd guess that making the lower() index unique would possibly work.
>
> On Wed, 14 Mar 2001, Shaw Terwilliger wrote:
>
> > I have a table with a TEXT field called "username". I'd like to retain the
> > case of the data stored here, but I'd like all comparisons to be done without
> > regard to case. Since all these accesses _should_ be done through database
> > functions, I can simply lower() the input values and compare. I also have
> > an index created on lower(username), so lookups are quick.
> >
> > However, I'd also like to have some sort of table constraint to make sure
> > alternate case "duplicate" records don't creep into the table. Any tips?
Define a trigger/rule that does either a transformation during insert
or updates the insert rule. If you put a unique index on the 'lower'
column then the rule should bomb out and explain why.
As a safety precaution, i would also make a rule that automagically
bombs out on a direct update to the 'lower' column.
--
-Alfred Perlstein - [bright(at)wintelcom(dot)net|alfred(at)freebsd(dot)org]
From | Date | Subject | |
---|---|---|---|
Next Message | Richard H | 2001-03-14 20:02:35 | Re: Case Insensitive CHECK CONSTRAINTs |
Previous Message | Stephan Szabo | 2001-03-14 19:49:52 | Re: AGE() function |