PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Частичен индекс не се използва в клаузата ON CONFLICT при извършване на upsert в Postgresql

Трябва да използвате предикат на индекс, за да използвате частичен уникален индекс. Прочетете в документацията:

индекс_предикат

Използва се за разрешаване на извод за частични уникални индекси. Могат да бъдат изведени всякакви индекси, които удовлетворяват предиката (които всъщност не трябва да са частични индекси). Следва формат CREATE INDEX.

В този случай:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Връщане на заявка от функция?

  2. Използвайте множество конфликт_цели в клауза ON CONFLICT

  3. Как автоматично да затворя неактивни връзки в PostgreSQL?

  4. Използване на pyspark за свързване с PostgreSQL

  5. PostgreSQL - Добавете ключ към всеки обект от JSONB масив