sql >> Database >  >> RDS >> PostgreSQL

hoe emuleren insert negeer en bij dubbele sleutel update (sql merge) met postgresql?

Met PostgreSQL 9.5 is dit nu native functionaliteit (zoals MySQL al enkele jaren heeft):

INSERT ... BIJ CONFLICT NIETS DOEN/UPDATE ("UPSERT")

9.5 biedt ondersteuning voor "UPSERT"-bewerkingen. INSERT is uitgebreid om een ​​ON CONFLICT DO UPDATE/IGNORE-clausule te accepteren. Deze clausule specificeert een alternatieve actie die moet worden ondernomen in het geval van een mogelijke dubbele overtreding.

...

Verder voorbeeld van nieuwe syntaxis:

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


  1. MySQL-prestaties:MySQL versus MariaDB

  2. Vereenvoudig geneste case when-instructie

  3. Wat is STATISTICS IO in SQL Server?

  4. Onbekende primaire sleutel voor tafel krijgen terwijl de ID er is