| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> | 
|---|---|
| To: | Vincent De Groote <vdg(dot)encelade(at)gmail(dot)com> | 
| Cc: | pgsql-general(at)postgresql(dot)org | 
| Subject: | Re: Foreign key in composite values | 
| Date: | 2011-05-06 14:32:34 | 
| Message-ID: | 10727.1304692354@sss.pgh.pa.us | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-general | 
Vincent De Groote <vdg(dot)encelade(at)gmail(dot)com> writes:
> I have a composite type with 2 fields.  I would like to check that one
> of these fields exists in another table.
> Foreign keys on a composite field does not seem to be supported.
Works for me, in 8.4 and up.  Whether it's a good idea is a different
issue (I think it'll be pretty inefficient, compared to a multicolumn
primary/foreign key on native datatypes), but it works.
regression=# create type cx as (r float8, i float8);
CREATE TYPE
regression=# create table p (id cx primary key);
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "p_pkey" for table "p"
CREATE TABLE
regression=# create table s (c cx references p);
CREATE TABLE
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Andrew Sullivan | 2011-05-06 14:52:53 | Re: Bidirectional replication | 
| Previous Message | Mason S | 2011-05-06 14:13:51 | Re: dblink() from GridSQL |