I was able to create a unique index, thanks.

On Tue, May 5, 2020 at 10:38 AM David G. Johnston <
david.g.johns...@gmail.com> wrote:

> On Tue, May 5, 2020 at 8:33 AM Ted Toth <txt...@gmail.com> wrote:
>
>> Can you have unique constraints on jsonb columns keys? I've looked for
>> examples but haven't found any what is the proper syntax? Here's what I
>> tried:
>>
>> CREATE TABLE report_json (
>>     recnum int,
>>     id integer,
>>     report jsonb,
>>     PRIMARY KEY (recnum),
>>     CONSTRAINT report_json_unique_constraint UNIQUE (id,((report ->>
>> 'data')::int),((report ->> 'ctc')::int),((report ->> 'dtg')::int)
>> );
>>
>> which causes a syntax error at the first '(' around 'report ->>'.
>>
>
> Documentation says constraints must reference column names - so no.  You
> can probably get what you are after by directly creating a unique index
> though - those allow expressions.
>
> David J.
>

Reply via email to