| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com> |
| Cc: | Silk Parrot <silkparrot(at)gmail(dot)com>, pgsql-general <pgsql-general(at)postgresql(dot)org> |
| Subject: | Re: Unique constraint on field inside composite type. |
| Date: | 2016-08-23 01:23:52 |
| Message-ID: | 16851.1471915432@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com> writes:
> On 08/17/2016 11:02 PM, Silk Parrot wrote:
>> CREATE TABLE user (
>> uuid UUID PRIMARY KEY DEFAULT public.uuid_generate_v4(),
>> google_user system.google_user,
>> facebook_user system.facebook_user,
>> UNIQUE (google_user.email)
>> );
>> ERROR: syntax error at or near "."
>> LINE 10: UNIQUE (google_user.email)
>>
>> Is there a way to create unique constraint on a field inside composite type?
> I tried David's suggestion:
> (google_user).email
> and that did not work, but it got me to thinking, so:
You'd need additional parens around the whole thing, like
create unique index on "user"(((google_user).email));
The UNIQUE-constraint syntax will never work, because per SQL standard
such constraints can only name simple columns. But you can make
a unique index separately.
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Patrick B | 2016-08-23 01:32:02 | Re: Permissions pg_dump / import |
| Previous Message | Adrian Klaver | 2016-08-23 01:02:57 | Re: Why insertion throughput can be reduced with an increase of batch size? |