From: | Jason Hihn <jhihn(at)paytimepayroll(dot)com> |
---|---|
To: | Antti Haapala <antti(dot)haapala(at)iki(dot)fi> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Help with array constraints |
Date: | 2003-04-03 15:25:14 |
Message-ID: | NGBBLHANMLKMHPDGJGAPKEGICGAA.jhihn@paytimepayroll.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
...
> There's no way to compare character string (char(1)) and character string
> array (char(1)[3]) with '=' operator. PostgreSQL uses triggers to
> implement foreign key constraints. Trigger creation fails because the type
> of _test.id doesn't match that of test.letter.
>
> > I want ALL the letter field values to be checked against what is in the
> > _test table id field when a row is inserted. For example, 'a' and 'b' is
> > in the _test table now, if I insert an 'a' or 'b' into test, it will
> > succeed. If I insert a 'c' or 'd' it should fail.
>
> Split your fixed sized array to separate table columns and make them
> foreign keys and it will work.
Not acceptable, or I would have done it. ;-) My alternative is to break it
out into tables, but since each record has several arrays per, that means
there's many, many little tables (with key data) that I'd have to make and
maintain.
> And probably you don't want to use char(1), because it uses at least 5
> bytes of storage for each single character.
Well then what should I use? "char" is an internal type, and it is not
specified if it is approved for use outside the internal uses...
Has no one written a generic trigger to do this? Also could be implemented
is trigger based array bounding if the bounds can be known to the trigger.
From | Date | Subject | |
---|---|---|---|
Next Message | Richard Huxton | 2003-04-03 15:28:06 | Re: Help with array constraints |
Previous Message | Antti Haapala | 2003-04-03 15:13:20 | Re: Help with array constraints |