Postgres 9.5+: UPSERT gibt die Anzahl der aktualisierten und eingefügten Zeilen zurück

Ich bekomme das kanonische Beispiel:

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

Aber jetzt muss ich auch wissen:

Wie viele Zeilen wurden eingefügtWie viele Zeilen wurden aktualisiert, weil vorhandenWie viele Zeilen konnten aufgrund von Einschränkungen nicht eingefügt werdenWenn die Einschränkung für die letzte Zeile nicht eingehalten wird, bleiben die zuvor eingefügten / aktualisierten Zeilen in der Datenbank erhalten?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage