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 по дате отправления: