Thread: citext question
Hi
I have played around a bit with the citext
extention. It looks like it is a lot like the
text data type - allmost like a memo
field. Is there any way to restrict the
length of citext fields, like char and
varchar fields?
Thanks
H.F.
I have played around a bit with the citext
extention. It looks like it is a lot like the
text data type - allmost like a memo
field. Is there any way to restrict the
length of citext fields, like char and
varchar fields?
Thanks
H.F.
On Oct 13, 2012, at 17:48, Heine Ferreira <heine.ferreira@gmail.com> wrote: > Hi > > I have played around a bit with the citext > extention. It looks like it is a lot like the > text data type - allmost like a memo > field. Is there any way to restrict the > length of citext fields, like char and > varchar fields? > > Thanks > > H.F. > Try "citext(25)"...if it works then "yes" otherwise "no"... David J.
On Oct 13, 2012, at 6:34 PM, David Johnston <polobo@yahoo.com> wrote: >> >> Hi >> >> I have played around a bit with the citext >> extention. It looks like it is a lot like the >> text data type - allmost like a memo >> field. Is there any way to restrict the >> length of citext fields, like char and >> varchar fields? >> >> Thanks >> >> H.F. >> > > Try "citext(25)"...if it works then "yes" otherwise "no"... No, citext(length) not supported. However, you can define check constraint, if that fulfill your requirement as given below: create table test2(col citext check(length(col) < 3)); Or you can create a domain which you can use in CREATE TABLE command as given below: CREATE domain citext_char as CITEXT CHECK(length(value) <= 3); Thanks & Regards, Vibhor Kumar EnterpriseDB Corporation The Enterprise PostgreSQL Company Blog: http://vibhork.blogspot.com
On 10/14/2012 05:48 AM, Heine Ferreira wrote: > Hi > > I have played around a bit with the citext > extention. It looks like it is a lot like the > text data type - allmost like a memo > field. Is there any way to restrict the > length of citext fields, like char and > varchar fields? First, don't use "char(n)" or plain "char". Neither do what you (as a sane and sensible person) probably expect them to do. In PostgreSQL, "varchar(n)" is effectively the same as "text" with a "length(col_name) <= n" CHECK constraint. There is no difference in how they are stored, and there's no advantage to using "varchar" over "text". It's similar with citext. While citext doesn't accept a typmod to constrain its length, you can and should use CHECK constraints as appropriate in your data definitions. -- Craig Ringer