sql >> Databasteknik >  >> RDS >> PostgreSQL

hur man emulerar insert ignore och på duplicate key update (sql merge) med postgresql?

Med PostgreSQL 9.5 är detta nu inbyggd funktionalitet (som MySQL har haft i flera år):

INSERT ... VID KONFLIKT GÖR INGENTING/UPPDATERA ("UPSERT")

9.5 ger stöd för "UPSERT"-operationer. INSERT utökas för att acceptera en ON CONFLICT DO UPDATE/IGNORE-klausul. Den här klausulen specificerar en alternativ åtgärd som ska vidtas i händelse av en potentiell dubblettöverträdelse.

...

Ytterligare exempel på ny syntax:

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


  1. Hur man modellerar för enkelt databasunderhåll

  2. COUNT() Funktion i MariaDB

  3. Vad är en en-till-en relation i en databas?

  4. ORA-00936:orakel för uttryck som saknas