PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

comment émuler insérer ignorer et mettre à jour la clé en double (fusion sql) avec postgresql?

Avec PostgreSQL 9.5, il s'agit désormais d'une fonctionnalité native (comme MySQL l'a depuis plusieurs années) :

INSÉRER ... EN CAS DE CONFLIT, NE RIEN FAIRE/METTRE À JOUR ("UPSERT")

9.5 apporte la prise en charge des opérations "UPSERT". INSERT est étendu pour accepter une clause ON CONFLICT DO UPDATE/IGNORE. Cette clause spécifie une action alternative à entreprendre en cas de double violation potentielle.

...

Autre exemple de nouvelle syntaxe :

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