[GENERAL] CANNOT USE ANY INDEX ON UPSERT (INSERT.....ON CONFLICT) - Mailing list pgsql-general

From agharta
Subject [GENERAL] CANNOT USE ANY INDEX ON UPSERT (INSERT.....ON CONFLICT)
Date
Msg-id feffc038-e8c2-f7af-22eb-3f99e0b1460a@gmail.com
Whole thread Raw
Responses Re: [GENERAL] CANNOT USE ANY INDEX ON UPSERT (INSERT.....ON CONFLICT)  (Alban Hertroys <haramrae@gmail.com>)
List pgsql-general

Hi all,

I have a problem with INSERT ... ON CONFLICT sql command.

Reading 9.6 documentation i see that ON  CONFLICT command will accpets only index_column_name or index_expression (unique composite/primary indexes are valid too).

So, my problem is that i can't create any type of upsert-valid index . Let me explain.

I have a table T1 containing  F1, F2, F3, F4 fields.

I can insert same records in T1, MAX TWICE.

I can have records like (A,B,C,D),(B,A,D,C), etc.. and  (A,B,C,D) AGAIN. Any other next insert of (A,B,C,D) is not allowed (actually it is avoided by a complex-and-slow-performance select count in before insert/update trigger). 

In this case i can't create any type of primary/unique index, like a composite F1,F2, F3, F4 index. (correct me if i am wrong please).

So, how to use UPSERT in this case?
Best regards,

Agharta

pgsql-general by date:

Previous
From: Tim Kane
Date:
Subject: [GENERAL] UDP buffer drops / statistics collector
Next
From: Moreno Andreo
Date:
Subject: [GENERAL] # of connections and architecture design