Re: Unique constraint on field inside composite type.

Поиск
Список
Период
Сортировка
От Adrian Klaver
Тема Re: Unique constraint on field inside composite type.
Дата
Msg-id bcfd250f-d5e7-99e8-e76a-a0e77a646679@aklaver.com
обсуждение исходный текст
Ответ на Re: Unique constraint on field inside composite type.  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general
On 08/22/2016 06:23 PM, Tom Lane wrote:
> Adrian Klaver <adrian.klaver@aklaver.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));

Aah, I did not bury it deep enough, my attempt:

create unique index g_u on  test_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
>


--
Adrian Klaver
adrian.klaver@aklaver.com


В списке pgsql-general по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Permissions pg_dump / import
Следующее
От: Jerome Wagner
Дата:
Сообщение: question on error during COPY FROM