sql >> Database teknologi >  >> RDS >> PostgreSQL

Delvis indeks bruges ikke i ON CONFLICT-klausulen, mens du udfører en upsert i Postgresql

Du skal bruge et indeksprædikat for at bruge et delvist unikt indeks. Læs i dokumentationen:

index_prædikat

Bruges til at tillade slutning af delvise unikke indekser. Ethvert indeks, der opfylder prædikatet (som faktisk ikke behøver at være delvist indeks), kan udledes. Følger CREATE INDEX-formatet.

I dette tilfælde:

INSERT INTO key_value_pair (key, value, is_active) VALUES ('temperature','20', false) 
ON CONFLICT (key) WHERE is_active
DO UPDATE
SET value = '33', is_active = true;


  1. Forskellen mellem datetime og timestamp i sqlserver?

  2. T-SQL trim   (og andre ikke-alfanumeriske tegn)

  3. SQL Fuzzy Matching

  4. Ret "profilnavn er ikke gyldigt" ved afsendelse af e-mail fra SQL Server