Обсуждение: force varchar column to be lowercase
Can I use a check constraint, or something other than a function to force a column to be lowercase only? Thx in advance
Kevin Kempter schrieb: > Can I use a check constraint, or something other than a function to force a > column to be lowercase only? > > > Thx in advance try to use regexp in your CHECK CONSTRAINT: CHECK (column::bpchar ~ '^[a-z]+$'::bpchar::text) Cheers Andy
On Tue, Jul 28, 2009 at 11:15 AM, Andreas Wenk<a.wenk@netzmeister-st-pauli.de> wrote: > Kevin Kempter schrieb: >> >> Can I use a check constraint, or something other than a function to force >> a column to be lowercase only? >> >> >> Thx in advance > > try to use regexp in your CHECK CONSTRAINT: > > CHECK (column::bpchar ~ '^[a-z]+$'::bpchar::text) Better would be CHECK (column = tolower(column)) which won't fail on non-letters and will work in non-C locales -- greg http://mit.edu/~gsstark/resume.pdf
Greg Stark schrieb: > On Tue, Jul 28, 2009 at 11:15 AM, Andreas > Wenk<a.wenk@netzmeister-st-pauli.de> wrote: >> Kevin Kempter schrieb: >>> Can I use a check constraint, or something other than a function to force >>> a column to be lowercase only? >>> >>> >>> Thx in advance >> try to use regexp in your CHECK CONSTRAINT: >> >> CHECK (column::bpchar ~ '^[a-z]+$'::bpchar::text) > > Better would be CHECK (column = tolower(column)) which won't fail on > non-letters and will work in non-C locales yes . but Kevin was asking for a way without a function. And by the way - it should read lower instead of tolower ... or am I wrong? Cheers Andy