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

как да емулирам вмъкване игнориране и при актуализиране на дублиран ключ (sql обединяване) с postgresql?

С PostgreSQL 9.5 това вече е естествена функционалност (както MySQL има от няколко години):

ВМЪКВАНЕ... ПРИ КОНФЛИКТ НЕ ПРАВЕТЕ НИЩО/АКТУАЛИЗИРАНЕ („UPSERT“)

9.5 предоставя поддръжка за операции "UPSERT". INSERT е разширен, за да приеме клауза ON CONFLICT DO UPDATE/IGNORE. Тази клауза посочва алтернативно действие, което да предприемете в случай на евентуално дублирано нарушение.

...

Допълнителен пример за нов синтаксис:

INSERT INTO user_logins (username, logins)
VALUES ('Naomi',1),('James',1) 
ON CONFLICT (username)
DO UPDATE SET logins = user_logins.logins + EXCLUDED.logins;


  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. Дълбоко гмуркане на доставчик на облак:PostgreSQL на AWS Aurora

  3. Heroku Postgres:Твърде много връзки. Как да убия тези връзки?

  4. Създаване на частичен уникален индекс с sqlalchemy на Postgres

  5. Изпълнение на PostgreSQL само в паметта